令人无语的设计
李鹏坤 / 2021-05-25
第一次使用 react 开发。
有个需求:使用“Context、useContext、useReducer”替代 Redux 做状态管理。
于是碰到了 useReducer 使用的问题。
找到了答案, github.com - useReducer dispatch calls reduce twice 。
简单来说就是,react 官方为了确保开发人员使用 useReducer 时,dispatch 触发的 reduce 是纯函数, 于是他们将 reduce 设计成在开发环境会触发两次,生产环境正常触发一次。
这样的设计可以理解,但是文档中并没有明确说明。 reactjs.org/docs - usereducer
:)