我正在尝试使用reactjs创建一个表单,我正在尝试使用twoway绑定。 我无法在valueLink中使用props,因为它只能采用状态。
问题1:我在创建组件时传入属性,并且在getInitial状态下我将其设置为状态,因为我无法在valueLink中使用props。什么是更好的方法?
我希望在文本框中发送每个更改,以便在服务器中进行一些计算,并将计算值转换为状态。
问题2:我无法使用方法componentWillReceiveProps,因为我使用state。我也无法使用shouldComponentUpdate,因为我无法使用setState。我可以在这里使用什么?
答案 0 :(得分:3)
valueLink
不适用于道具。您可能想要在没有双向绑定帮助程序的情况下尝试React。帮助器实际上是一个方便的糖,而不是一个完整的库功能(因为React不需要双向绑定)。
对于问题1:这是一个antipattern,另一个原因是你应该首先尝试没有绑定助手的React。让支柱保持支柱(在大多数情况下)。
问题2:这也是你决定使用绑定助手时更难的事情。至于“无法使用shouldComponentUpdate
”,我不确定你的意思。
您的输入值似乎在层次结构中被控制得更高,并作为道具传递下来。以下是没有附加组件的情况:http://jsfiddle.net/TcfWe/
请注意,我将doSomeComputationOnServerSide
放在父级中,因为它与value
的真实来源一起感觉更加连贯。根据您的需要,您可以将它放在孩子身上。