本文正在参加「金石计划」
概念
-
多个组件同时修改同一数据state,就将这个state提升到父组件中去
任何state应当只有一个相对应的唯一“数据源”
如果某些数据可以由 props 或 state 推导得出,那么它就不应该存在于 state 中
-
依靠自上而下的数据流,而不是尝试在不同组件间同步 state
步骤
- 从子组件中 移除 state 。
- 从父组件 传递 硬编码数据。
- 为共同的父组件添加 state ,并将其与事件处理函数一起向下传递。
好处
- 排查和隔离 bug 所需的工作量将会变少
- 组件中的任何 state,仅有组件自己能够修改它,因此 bug 的排查范围被大大缩减了
- react-devtools
- 可以添加自定义逻辑来拒绝或转换用户的输入