Dom Crash反应选择选项

时间:2018-01-07 05:33:14

标签: javascript reactjs jsx

<option>包含三个插值(如果一个是条件值)时,React DOM停止工作。

这是一个小提琴:https://jsfiddle.net/0opjvycp/

使用<select>

更改NotFoundError: Node was not found崩溃的值

它在React 15上工作正常,这只发生在react 16.2

1 个答案:

答案 0 :(得分:1)

这绝对是一个奇怪的。

如果我将{isSelected && '(Y) '}替换为{isSelected ? '(Y) ' : ''},那就没问题了。但在后一种情况下,输出始终是一个字符串。

如果您在<Option>和字符串值之间更改false个孩子,React似乎不满意重新呈现。也许在DOM协调中存在新的错误。

此外,如果您的目的是重置商店并为更改事件的菜单选择单个选项,而不是:

this.setState({ 
              items: {
                      ...this.state.items,
                     [v]: true
                     }
              })

做类似的事情:

this.setState({ 
              items: {
                      ...{a:false, b:false},
                     [v]: true
                     }
              })

如上所述,您永远不会取消选择。