在Firefox

时间:2018-01-19 12:09:48

标签: javascript reactjs redux react-redux

React.js组件中的select元素需要2次点击才能在Firefox中更新,但在Chrome和Safari中首次点击时会正确更新。

它是使用Redux + React-Redux的组件,select元素的值由通过mapStateToProps传递给它的商店值决定。

React Devtools显示正确更新select元素的值,但DOM本身在第一次单击时不会更新。

Redux Devtools显示正在传递的正确操作并正在进行正确的状态更改。

我在CodeSandbox中创建了一个独立的组件树重新创建(它在这里正常运行,所以没有太多帮助):https://codesandbox.io/s/jl7rpw3635

Here's a gif of the problem

提前致谢!

1 个答案:

答案 0 :(得分:1)

我最终解决了这个问题,方法是修改select组件以在mount上呈现其选项,然后将它们附加到类属性,避免每次select组件更新时再次重新呈现每个选项(它们永远不会改变,所以它可能会使这样做的意义) - https://codesandbox.io/s/m7m2qqp9py