我已经回答了一个类似的问题,我不知道如何与您分享这个答案。所以我正在重新输入。
在反应中,组件仅在状态更改时呈现。每当组件的状态发生变化时,就会渲染相应的组件。这意味着我们正在使用新值更新虚拟 DOM 并将其附加到主 DOM。这就是反应的工作原理。
在输入文本字段的情况下,文本字段的值仅在用户输入某个值时才会改变。在这种情况下,我们不会更新任何状态,而是向文本字段的“值”属性添加新值。所以反应不会渲染任何东西,新值也不会添加到 DOM 中。在这里,我们违反了反应行为。所以反应不允许我们编辑输入文本字段。
为了获得反应的顺畅流动,它允许我们使用 on change 回调函数来设置状态。在更改文本字段的值时,状态设置为新值,因此反应渲染和 DOM 更新为新值。
我们可以使用 valuelink 属性来为输入文本添加值,而不是使用回调函数。喜欢:
getInitialState: function(){
return {
value:'' //for empty text value
}
}
对于值链接,我们必须给出状态值而不是变量值。完整理解请参考:
https ://facebook.github.io/react/docs/two-way-binding-helpers.html
每当我们在文本框中输入文本时,状态都会更新,输入文本的值会设置为状态值。