【问题标题】:I need some clarification about action我需要澄清一下行动
【发布时间】:2021-07-11 12:36:58
【问题描述】:

action 在这个参考文献中究竟做了什么:

export function productsReducer(state = initialState, action)

【问题讨论】:

    标签: reactjs redux react-redux


    【解决方案1】:

    你分享的语法是一个 reducer 的语法,它包含两个参数,initialState 和一个动作。

    动作是由您的应用程序触发的。如果你只使用 redux,它会使用 store.dispatch() 类似的东西触发

    store.dispatch({
      type:'UPDATE_SOMETHING',
      payload: metadata
    });
    

    这个触发的动作会被你的 reducer 作为第二个参数接收,如下所示

    {
      type:'UPDATE_SOMETHING',
      payload: metadata
    }
    

    现在,reducer 可以决定尊重这个动作还是忽略它。 reducer 的典型实现如下所示

    export function productsReducer(state = initialState, action) {
       switch(action.type) {
          case 'UPDATE_SOMETHING':
              return {...state, metadata: action.payload},
          default: 
              return state;
       }
     
    }
    

    添加一个返回状态的默认情况很重要,这样不遵守操作的reducer就不会修改它们的状态,因为每个reducer的返回值在操作被调度后使用。

    请注意,每个动作都是一个带有强制类型属性的普通对象。您当然可以使用 redux-thunk 等中间件对其进行扩展。

    【讨论】:

      猜你喜欢
      • 2017-01-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-10
      • 1970-01-01
      • 2013-08-06
      相关资源
      最近更新 更多