反应是不是重新渲染,以反映setState
问题描述:
我只有两个textareas。当你将文本输入到第一个textarea时,文本应该出现在第二个textarea中。我已经检查过,以确保事件正在发射。该网页似乎不呈现...请帮助,谢谢。反应是不是重新渲染,以反映setState
var OutputText = React.createClass({
getInitialState: function() {
return {
text: ''
};
},
handleChange: function(event) {
this.setState({ text: event.target.value });
},
render: function() {
return (
<div>
<h1 className='text-center'>Markdown Previewer</h1>
<div className='row'>
<div className='col-xs-4 text-center'>
<textarea className='user-input' onChange={this.handleChange}></textarea>
</div>
<div className='col-xs-4 text-center'>
<textarea>{this.state.text}</textarea>
</div>
</div>
</div>
)
}
});
React.render(
<OutputText />,
document.getElementById('main-container')
);
答
你不能设置内部的textarea
使用反应孩子们喜欢的值。
您需要在文本上textarea
标签添加为value
像这样:
<textarea value={this.state.text}></textarea>
进一步,你应该使用ReactDOM.render,作为React.render被弃用:
ReactDOM.render(
<OutputText />,
document.getElementById('main-container')
);
这两个错误都在控制台中。
控制台中是否有任何警告或错误?我认为React会警告你应该使用''而不是你在做什么,这可能会解决问题。 – AgentME
我目前无法测试,但您是否尝试过使用''而不是? – Kujira
没有警告,但解决了它。谢谢!我怎样才能知道哪些工作/不与每个HTML标签工作? – vercingortix