【发布时间】:2020-10-23 13:15:03
【问题描述】:
我正在使用 React Native 构建一个应用,并使用 Redux 和 redux-persist 充当设备数据库。
问题的症结在于,我如何返回一个 redux 操作的结果,然后用这些数据调度另一个操作?请继续阅读以了解更多细节。
用户可以创建自定义习惯类型。这样做时,我会发送一个动作来在商店中创建一个习惯类型(例如“跑步”)。此操作会为习惯类型生成一个新的唯一 UUID。然后我想将这个新创建的习惯类型添加到例程中(例如“早上例程”),因此我需要接收回习惯类型的 UUID 并调用另一个调度将其添加到例程中。
我使用immer 来简化reducer 中的状态操作,并使用以下代码(简化示例):
import produce from "immer";
const userReducer = (state = initialState, action) => {
switch (action.type) {
case ADD_CUSTOM_HABIT_TYPE: {
return produce(state, draftState => {
const newHabitType = {
id: generateUuid(),
name,
};
draftState.customHabitTypes.push(newHabitType);
return draftState;
});
}
}
};
然后我将它发送到我的组件中,就像这样(简化):
dispatch({
type: ADD_CUSTOM_HABIT_TYPE,
name: "running",
});
在创建这种新习惯类型之后,我怎么能说调度另一个动作并将其添加到我的例程中?
我查看了redux-thunk 和redux-saga,并花了几个小时阅读这些内容并试图让redux-thunk 工作,但无济于事。我相信这一定很简单,但我是空白的,所以也许其他人也是如此,因此这篇文章。
【问题讨论】:
标签: reactjs redux redux-saga redux-thunk redux-persist