反应是不是重新渲染,以反映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') 
); 
+1

控制台中是否有任何警告或错误?我认为React会警告你应该使用''而不是你在做什么,这可能会解决问题。 – AgentME

+0

我目前无法测试,但您是否尝试过使用''而不是? – Kujira

+0

没有警告,但解决了它。谢谢!我怎样才能知道哪些工作/不与每个HTML标签工作? – vercingortix

Working JSFiddle

你不能设置内部的textarea使用反应孩子们喜欢的值。

您需要在文本上textarea标签添加为value像这样:

<textarea value={this.state.text}></textarea> 

进一步,你应该使用ReactDOM.render,作为React.render被弃用:

ReactDOM.render(
    <OutputText />, 
    document.getElementById('main-container') 
); 

这两个错误都在控制台中。