【发布时间】:2017-02-28 03:10:57
【问题描述】:
我有一个从父组件接收道具的子组件。在子组件中,它呈现几个单选按钮,如下所示:
<div>
<div className="radio">
<label>
<input
type="radio"
name="value"
onChange={this._handleInputChange}
value="1"
checked={this.props.value === "1"}
/>
True
</label>
</div>
<div className="radio">
<label>
<input
type="radio"
name="value"
onChange={this._handleInputChange}
value="0"
checked={this.props.value === "0"}
/>
False
</label>
</div>
</div>
handleInputChange 只是像这样调用父方法:
_handleInputChange(e) {
this.props.handleChange(e);
}
这会将父组件的状态设置为单选按钮中选择的值(即“1”或“0”)。我遇到的问题是检查的条件返回正确的道具,但它们的功能很奇怪。似乎当无线电输入接收到新的道具值时,它不会使用checked 重新渲染。当组件第一次渲染时,props.value 是一个空字符串。当用户选择一个单选按钮时,它会使用_handleInputChange 更改父组件的状态,然后将该值发送回用于条件。
【问题讨论】:
-
也许你需要使用
defaultChecked而不是checked -
@A.L 我认为您应该将其写为答案。它解决了我遇到的问题。
标签: javascript reactjs