Я создаю приложение на React Native и использую Redux с redux-persist, чтобы действовать как в базе данных устройства.
Суть проблемы заключается в том, как мне вернуть результат действия redux, чтобы затем отправить другое действие с этими данными? Подробнее читайте в этой статье.
Пользователь может создавать собственные типы привычек. При этом я отправляю действие для создания типа привычки в магазине (например, бег). Это действие создает новый уникальный UUID
для типа привычки. Затем я хочу добавить этот вновь созданный тип привычки в рутину (например, утреннюю рутину), и поэтому мне нужно получить обратно UUID
типа привычки и вызвать другую отправку, чтобы добавить ее в рутину.
Я использую immer, чтобы упростить управление состоянием в моих редукторах, и имею этот код (упрощенный пример ):
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, но безрезультатно. Я уверен, что это должно быть просто, но я ничего не понимаю, и, возможно, другие тоже, отсюда и этот пост.