从React组件更新模型/集合
Updating model/collection from React component
我看到了很多使用React与backbone的例子,但是有些事情对我来说仍然有些不清楚。在几乎所有的例子中,他们都展示了如何让你的组件监听一个模型或集合,并相应地更新视图,这看起来很简单,你可以使用Backbone Mixin,或者你可以在"componentDidMount()"中设置一些事件监听器。
我不清楚的是如何处理另一种方式,即当用户在一些输入字段中写入时,我想在我的模型上设置相同的值,这最终是我验证的,然后保存在服务器上。
对于简单的表单,这也很简单,你可以有一个回调onChange事件,例如:
return <div><input type="text" onChange={this.setPrice} /></div>
都好了,在setPrice函数中我现在可以这样做:
this.props.myModel.set('price', e.target.value);
这是有效的,但有两件事立即打动了我:set方法将在模型的每一个键事件上被调用,因为当你在文本框中输入时,react "onChange"实际上在每一个键事件上执行。
我的第二个问题是,这对简单的表单很有效,但是我们有超过30-40个不同的输入字段的表单,在所有这些输入框,复选框上有一个onChange事件,你似乎适得其反。
现在,我们在骨干视图中有一个数据绑定,它简单地设置模型上这些输入字段上的用户类型,这似乎不是React的方式,因为如果你使用ReactLink之类的东西,要更新的是组件上"state"中的属性,而不是模型上的属性。
这里是否存在最佳实践,或者React和Backbone之间的"联姻"根本就不应该存在?似乎需要以某种方式将每个输入字段映射到模型上的特定属性。我不确定这对React来说是不是一件好事。
谢谢
您可以调用setPrice
方法onBlur
而不是onChange
,这样当用户单击或选项卡退出字段时,您将更新状态。
在我看来,这对于较长的表单更有效,因为您可以保证用户将选项卡或单击到下一个字段。
- 为集合分配大量的模型弹药
- 如何使用backbone.js从集合中获取模型名称
- 2个backbone.js集合,具有相同的模型,但排序顺序不同
- 主干-从模板中迭代的集合中获取特定的模型
- 如何更改与Backbone集合中的模型相关联的几个元素的css属性
- 从骨干集合筛选模型,然后为这些模型设置属性
- 主干模型:保存时保留集合
- 主干输出用于集合模型的空数组
- 无集合模型
- 无法访问 Backbone.js 集合/模型从模板中
- 在主干应用中持久更新集合模型的正确方案
- Backbone 如何在需要时更新集合模型
- 主干:访问集合模型
- 制作模型属性“;独特的“;在集合模型中
- 打印出集合和集合.模型给出了不同的结果
- 在将集合模型的旧值设置为新值后,获取它们的主干模型
- Backbone.js中的嵌套集合/模型视图管理
- 将Backbone.js JSON响应填充到嵌套集合/模型中的嵌套集合中
- 骨干-在初始化集合模型时传递数据
- 从嵌套的集合模型javascript创建JSON