我需要澄清一下行动



action在这个引用中到底做了什么:

export function productsReducer(state = initialState, action)

您共享的语法是一个包含两个参数initialState和一个操作的reducer的语法。

操作是由应用程序触发的。如果你只使用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;
}

}

添加一个返回状态的默认情况很重要,这样不执行操作的减少程序就不会修改其状态,因为每个减少程序的返回值都是在调度操作后使用的。

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

相关内容

  • 没有找到相关文章

最新更新