在我的React应用中,即使检查的道具为true,输入类型的收音机也不会显示为选中状态

时间:2018-11-06 10:07:53

标签: reactjs

在一个表单中,我有一个带有两个受控输入的简单单选按钮组。默认情况下,通过将“已接受”的默认状态设置为“ false”,将选中“否”选项。这可行,但是我遇到的问题是选择“是”选项时,单击单选按钮时不会显示为选中状态。我必须再次单击它才能被选中。

在Chrome中使用反应检查器将检查的道具实际设置为true。

希望我的问题有道理。

注意:我发现了其他类似问题的帖子,解决方案是在onChange函数中删除preventDefault,但我没有。

我的jsx渲染方法:

<label><input type="radio" name="Accepted" value="true" onChange={this.onChange} checked={this.state.Accepted === "true"} /> Yes</label> 
<label><input type="radio" name="Accepted" value="false" onChange={this.onChange} checked={this.state.Accepted === "false"} />No</label>

onChange函数如下所示:

onChange = (e) => {
    this.setState({
        [e.target.name]: e.target.value
    })
}

将状态初始化为类似这样的构造函数:

constructor(props) {
    super(props)

    this.state = {
        Accepted: false,
    }
}

0 个答案:

没有答案