如果
checked将复选框的属性设置为
null或,则会出现问题
undefined。
这些是JS中的“错误”值,但是React对待的值
null好像根本没有设置该属性。由于未选中复选框的默认状态,因此一切正常。如果您随后将其设置
checked为
trueReact,则认为该属性突然存在!这是当React将您从不受控制切换为受控制的时候,因为现在道具
checked已经存在。
在您的示例中,您可以通过更改
checked={this.settings[setting]}为来消除此警告checked={!!this.settings[setting]}。注意双爆炸(!!)。他们将转换
null或
undefined以
false(离开
true单独的),等反应过来将你的注册
checked用的价值属性
false,并以受控的表单组件开始。
我也遇到了这个问题,我也没有阅读有关受控组件服务器时间的文档,但是最终我发现了这一点,所以我想分享一下。同样,由于15.2.0版触发了普通输入由set进行控制
value,而复选框却被set初始化为由set进行控制,而
checked不管其
value属性如何,这增加了一些混乱。



