zoukankan      html  css  js  c++  java
  • combineReducers使用

    1. 随着应用变得复杂,需要对 reducer 函数 进行拆分,拆分后的每一块独立负责管理 state 的一部分。
      //原本一个实现加,减,重置的reducer
      function reducer(state = {count: 0}, action) {
          switch(action.type) {
              case 'Increment':
                  return {
                      count: state.count+1
                  }
                  break;
              case 'Decrement':
                  return {
                      count: state.count-1
                  }
                  break;
              case 'Reset':
                  return {
                      count: 0
                  }
                  break;
              default:
                  return state
                  break;
          }
      }
    2. 我们可以拆分成两个,然后使用combineReducers结合起来
      //拆分成多个reducer,然后结合
      import { combineReducers } from 'redux'
      function change(state = {count: 0}, action) {
          switch(action.type) {
              case 'Increment':
                  return {
                      count: state.count+1
                  }
                  break;
              case 'Decrement':
                  return {
                      count: state.count-1
                  }
                  break;
              default:
                  return state
                  break;
          }
      }
      function reset (state = {count: 0}, action) {
          switch(action.type) {
              case 'Reset':
                  return {
                      count: 0
                  }
                  break;
              default:
                  return state
                  break;
          }
      }
      export default combineReducers({
          change,
          reset
      })
    3. 需要注意的是我们的每个reducer必须有返回值,如果不做改变返回传入的state
    4. 使用combineReducers暴露出去之后,再使用store.getState()获取到的是这样一个结构,相当于每个reducer都有自己的一个state,不互通

      我们要获取到count的值 store.getState().change.count分别去取值

  • 相关阅读:
    makedown
    前端
    关于阅读与自我认同
    Win10任务栏透明工具 TranslucentTB
    Linux文件属性
    解决vscode出现两个光标的问题
    一文搞懂vim复制粘贴
    解决vim选中文字不能复制的问题
    简单配置让iterm2用得更爽
    区块链相关在线加解密工具(非对称加密/hash)
  • 原文地址:https://www.cnblogs.com/longlongdan/p/10775911.html
Copyright © 2011-2022 走看看