4

我正在尝试使用 reactjs 创建一个表单,我正在尝试双向绑定。我无法在 valueLink 中使用道具,因为它只能采用 state 。

问题 1:我在创建组件时传入属性,在 getInitial 状态下我将其设置为 state,因为我不能在 valueLink 中使用道具。更好的方法是什么?

我想在文本框中发送每个更改以在服务器中进行一些计算并将计算的值设置为状态。

问题 2:我无法使用方法 componentWillReceiveProps,因为我使用状态。我也无法使用 shouldComponentUpdate,因为我无法执行 setState。我可以在这里使用什么?

4

1 回答 1

3

valueLink不适用于道具。你可能想在没有双向绑定助手的情况下尝试 React。助手实际上是作为一个方便的糖,而不是作为一个完整的库功能(因为 React 不需要双向绑定)。

对于问题 1:这是一种反模式,也是您应该先尝试不使用绑定助手的 React 的另一个原因。让道具保持道具(在大多数情况下)。

对于问题 2:这也是由于您决定使用绑定助手而变得更加困难的事情。至于“无法使用shouldComponentUpdate”,我不确定你的意思。

似乎您输入的值在层次结构中被控制得更高,并作为道具向下传递。如果没有附加组件,您会执行以下操作:http: //jsfiddle.net/TcfWe/

请注意,我将 thedoSomeComputationOnServerSide放在父级中,因为与value's source of truth 并排感觉更加连贯。根据你的需要,你可以把它放在孩子身上。

于 2014-06-07T17:26:10.637 回答