Javascript Dom崩溃反应选择选项
当Javascript Dom崩溃反应选择选项,javascript,reactjs,jsx,Javascript,Reactjs,Jsx,当包含三个插值(如果其中一个是条件插值)时,React DOM停止工作 这是一把小提琴: 更改的值会导致NotFoundError崩溃:未找到节点 它在React 15上运行良好,这只发生在React 16.2上,这绝对是一个奇怪的问题 如果我将您的{isSelected&&(Y)}替换为{isSelected?'(Y):“}没有问题。但在后一种情况下,输出总是一个字符串 如果在false和字符串值之间更改的子项,则React似乎不高兴重新渲染。也许DOM协调中有一个新的bug 此外,如果您的目
包含三个插值(如果其中一个是条件插值)时,React DOM停止工作
这是一把小提琴:
更改
的值会导致NotFoundError崩溃:未找到节点
它在React 15上运行良好,这只发生在React 16.2上,这绝对是一个奇怪的问题 如果我将您的
{isSelected&&(Y)}
替换为{isSelected?'(Y):“
}没有问题。但在后一种情况下,输出总是一个字符串
如果在false
和字符串值之间更改
的子项,则React似乎不高兴重新渲染。也许DOM协调中有一个新的bug
此外,如果您的目的是重置存储并在更改事件上为菜单选择单个选项,而不是执行以下操作:
this.setState({
items: {
...this.state.items,
[v]: true
}
})
做一些类似于:
this.setState({
items: {
...{a:false, b:false},
[v]: true
}
})
如前所述,您从未取消选择选项。不确定React 15版本,但我感觉您正在更改onchange中的对象结构。(不确定是否有意)更新了小提琴。谢谢,我认为这是扭转这个错误的方法。可能是。还在想它在15年里是怎么工作的。无论如何。希望它能解决你的问题。实际上,我把版本降到了15.6。你的解决方案是正确的,但不实用。如果我有很多选择,我会有很多重复的代码+我不太确定我是否理解你关于代码经济性的观点。严格来说,
的内容应该是单个字符串。您将生成三个无眼子节点,其中一些是字符串,一些是布尔值。如果您真的构建了一个字符串,那么它将保证工作正常。我不确定我是否期望有明确的书面行为。如果您关心我的setState建议,为什么不将单个选定值存储在state(this.state.selected)中,并保留一个带有所有If列表选项的const
对象来填充列表-将其作为道具传递?