【发布时间】:2021-07-11 12:36:58
【问题描述】:
action 在这个参考文献中究竟做了什么:
export function productsReducer(state = initialState, action)
【问题讨论】:
标签: reactjs redux react-redux
action 在这个参考文献中究竟做了什么:
export function productsReducer(state = initialState, action)
【问题讨论】:
标签: reactjs redux react-redux
你分享的语法是一个 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 等中间件对其进行扩展。
【讨论】: