在这里反应noob,尝试为我的复选框控件设置初始值。我设置了属性,并尝试使用getInitialState将状态设置为属性值。问题是,道具似乎在getInitialState中未定义。我已经简化并创建了一个jsbin来显示问题。https://jsbin.com/cujeveh/edit?html,js,console,output
var testcontrol = React.createClass({
getInitialState: function () {
return { testval: this.props.testval };
},
render: function() {
return (
<input type="checkbox" checked={this.state.testval?"checked":""}}/>
);
}
});
React.render(
<Container lblOn="yup" lblOff="nope"
buttonText="saveit" testval="1" />, document.body);
同样在jsbin中,尝试了具有相同结果的componentDidMount方法。如果我更新getInitialState以用硬编码值替换prop,一切正常。我确实阅读了React docs here并确实看到了反模式语句,但我只是试图设置我理解为正常的初始状态。
答案 0 :(得分:0)
在您的示例中,您在testval
组件上设置了<Container>
prop,但在<Chkbox1>
组件上没有,这是检查它的组件。可能是一个轻微的疏忽。你只需要改变:
<Chkbox1 ref="box1" lblOn={this.props.lblOn}
lblOff={this.props.lblOff} />
到
<Chkbox1 ref="box1" lblOn={this.props.lblOn}
lblOff={this.props.lblOff} testval={this.props.testval}/>