【发布时间】:2015-12-15 10:51:26
【问题描述】:
面对此错误:失败的 propType:您向没有 onChange 处理程序的表单字段提供了 value 道具。这将呈现一个只读字段。如果该字段应该是可变的,请使用defaultValue。否则,设置onChange 或readOnly。检查BasicInputBox的渲染方法。
我正在返回以下组件:
<BasicInputBox label="Student Name :" valChange={this.nameChange} value={datafield.name}/>
和组件:
var BasicInputBox = React.createClass({
render: function() {
return <div>
<tr>
<td><label> { this.props.label } </label></td>
<td><input type="text" onChange={ this.props.valChange } value={ this.props.value } /></td>
</tr>
</div>
}
});
在文本字段中更改时值不会更改。
以下是nameChange函数的作用
【问题讨论】:
-
nameChange: function(event){ this.setState({name: event.target.value}) },
-
我们是否可以假设
value将通过渲染调用正确更新,并且nameChange将在某处更改状态,从而导致重新渲染?看看那段代码会很有帮助。 -
tr不是div的合法子代。请显示更多代码并确保它干净且有效(直到您遇到问题为止)。 -
See spec:可以使用此元素的上下文。
tr元素不能出现在任何地方。
标签: javascript php reactjs