使用多个参数调度并使用 Redux Toolkit 创建操作
Dispatch with multiple parameters and create action with Redux Toolkit
我对 Redux(尤其是 Redux Toolkit)还很陌生,无法解决以下问题。
我正在使用 Toolkit 重写旧代码。
我知道我可以在我的 createSlice 中执行以下操作。
reducers: {
changeDay: (state, action) => {
state.day = action.payload;
}
}
并像这样发送:
store.dispatch(changeDay(true));
然而,我的应用程序中的许多场景都采用第二个参数,以没有工具包的旧 redux 为例
case ACTIVITY:
return {
activity: action.data.first,
anotheractivity: action.data.second,
};
此操作如下所示:
function clickedActivity(first = undefined, second = undefined) {
const data = {
first,
second,
};
return {
type: ACTIVITY,
data,
};
}
在这种情况下,我能够调用 dispatch(clickedActivity(first,second)) 并根据需要获得两个值。
我假设我一直在文档中寻找错误的关键字,因为我找不到解决方案。有什么提示吗?
您可以在 action.payload 中传递一个对象。
例如,
// assume you wanted to pass multiple parameters in reducer function changeDay
store.dispatch(changeDay({ type:ACTIVITY, data,}));
// Now inside the reducer, you can receive it like this
reducers: {
changeDay: (state, action) => {
const {type,data}=action.payload; // You will receive the properties like this
}
}
我对 Redux(尤其是 Redux Toolkit)还很陌生,无法解决以下问题。
我正在使用 Toolkit 重写旧代码。
我知道我可以在我的 createSlice 中执行以下操作。
reducers: {
changeDay: (state, action) => {
state.day = action.payload;
}
}
并像这样发送:
store.dispatch(changeDay(true));
然而,我的应用程序中的许多场景都采用第二个参数,以没有工具包的旧 redux 为例
case ACTIVITY:
return {
activity: action.data.first,
anotheractivity: action.data.second,
};
此操作如下所示:
function clickedActivity(first = undefined, second = undefined) {
const data = {
first,
second,
};
return {
type: ACTIVITY,
data,
};
}
在这种情况下,我能够调用 dispatch(clickedActivity(first,second)) 并根据需要获得两个值。
我假设我一直在文档中寻找错误的关键字,因为我找不到解决方案。有什么提示吗?
您可以在 action.payload 中传递一个对象。 例如,
// assume you wanted to pass multiple parameters in reducer function changeDay
store.dispatch(changeDay({ type:ACTIVITY, data,}));
// Now inside the reducer, you can receive it like this
reducers: {
changeDay: (state, action) => {
const {type,data}=action.payload; // You will receive the properties like this
}
}