【发布时间】:2021-07-02 02:55:37
【问题描述】:
在 redux 动作中,当我们想要设置一个值时,我们使用一个类型来调度,如下所示:
dispatch({
type: SET_LOADER,
payload: true
})
type: SET_LOADER 存储在不同的文件中并像下面这样导出。
export const SET_LOADER = 'SET_LOADER'
在 reducer 中我们会这样做:
function initialState() {
return {
formErr: {},
isLoading: false
}
}
export default function (state = initialState(), action) {
const { type, payload } = action;
switch (type) {
case SET_LOADER:
return {
...state,
isLoading: payload
}
default:
return state
}
}
所以在我的应用程序中,我将这个SET_LOADER 类型用于不同的操作和减速器。例如,在认证中,在配置文件更新中,当我要加载时,我会使用这种类型。所以我在各个地方都导入了这种类型。
我不确定是否可以将单一类型用于多用途,因为我现在注意到,当我进行调度时,更新的 redux 状态不属于目标减速器。状态更新发生在不同的 reducer。
但它是第一次调度。下一次更新,它正在更新不正确的 redux 状态。在我刷新页面并尝试再次更新后,它就可以工作了。
【问题讨论】:
-
每个reducer都会响应每个动作。因此,在调度该操作时,您应该期望在所有减速器中将加载状态设置为 true。
标签: reactjs redux redux-thunk dispatch