我想要做的是当我在输入字段中输入一些文本时,它应该实时出现在另一个地方。
以下是我的输入;
<div className="post_input">
<input className='post_data_input_overlay' placeholder="Ask your question here" ref="postTxt"/>
</div>
我怎样才能做到这一点?
原文由 CraZyDroiD 发布,翻译遵循 CC BY-SA 4.0 许可协议
我想要做的是当我在输入字段中输入一些文本时,它应该实时出现在另一个地方。
以下是我的输入;
<div className="post_input">
<input className='post_data_input_overlay' placeholder="Ask your question here" ref="postTxt"/>
</div>
我怎样才能做到这一点?
原文由 CraZyDroiD 发布,翻译遵循 CC BY-SA 4.0 许可协议
简而言之,在 React 中,没有双向数据绑定。
所以当你想实现那个功能时,试着定义一个 state
,然后像这样写,监听事件,更新状态,React 为你渲染:
class NameForm extends React.Component {
constructor(props) {
super(props);
this.state = {value: ''};
this.handleChange = this.handleChange.bind(this);
}
handleChange(event) {
this.setState({value: event.target.value});
}
render() {
return (
<input type="text" value={this.state.value} onChange={this.handleChange} />
);
}
}
详情在这里 https://facebook.github.io/react/docs/forms.html
2020 年更新
注意:
LinkedStateMixin 从 React v15 开始被弃用。建议显式设置值和更改处理程序,而不是使用 LinkedStateMixin。
以上更新来自 React 官方 网站。如果您在 React 的 v15 下运行,请使用下面的代码,否则 不要。
实际上有人想用双向绑定来编写,但 React 不能那样工作。如果你确实想那样写,你必须使用 React 的插件,如下所示:
var WithLink = React.createClass({
mixins: [LinkedStateMixin],
getInitialState: function() {
return {message: 'Hello!'};
},
render: function() {
return <input type="text" valueLink={this.linkState('message')} />;
}
});
详情在这里 https://facebook.github.io/react/docs/two-way-binding-helpers.html
对于 refs
,它只是一个允许开发人员在组件方法中访问 DOM 的解决方案,请参见此处 https://facebook.github.io/react/docs/refs-and-the-dom。网页格式
原文由 jiyinyiyong 发布,翻译遵循 CC BY-SA 4.0 许可协议
React 中的数据绑定可以通过使用
controlled input
来实现。通过将值绑定到state variable
和onChange
事件来实现受控输入,以在输入值更改时更改状态。请参阅下面的片段
更新:反应钩子
这是上面定义的类的等效函数组件。