调用更新本地存储的操作(没有 API 调用)- redux persist,react native
Calling an action to update local storage (without API call) - redux persist, react native
我正在尝试在 redux sagas 中发送一个动作以将 id 添加到本地商店:
import { call, takeEvery } from 'redux-saga/effects';
import { BENEFITS } from '../actions/types';
function* addBenefitIdToViewedList(action){
const id = action.payload.isClaimable? 'c'+ action.payload.id : 's'+action.payload.id;
console.log(id)
console.log(action)
console.log(yield call({type: BENEFITS.VIEWED_LIST.ADD, rootAction:action}));
}
export default function*() {
yield takeEvery(BENEFITS.VIEWED_LIST.POST, addBenefitIdToViewedList);
}
我认为问题是 "yield call" - 我应该使用不同的东西吗?
当我调试它时,调用 BENEFITS.VIEWED_LIST.POST 并相应地打印 id 和 action。但是,不会调用 BENEFITS.VIEWED_LIST.ADD。我需要打电话,以便 reducer 可以更新商店。
有什么想法吗?感谢您的帮助!
如果你想安排一个动作到商店的调度,你需要使用 put 这样:yield put(action)
而不是只调用一个函数的调用。
我正在尝试在 redux sagas 中发送一个动作以将 id 添加到本地商店:
import { call, takeEvery } from 'redux-saga/effects';
import { BENEFITS } from '../actions/types';
function* addBenefitIdToViewedList(action){
const id = action.payload.isClaimable? 'c'+ action.payload.id : 's'+action.payload.id;
console.log(id)
console.log(action)
console.log(yield call({type: BENEFITS.VIEWED_LIST.ADD, rootAction:action}));
}
export default function*() {
yield takeEvery(BENEFITS.VIEWED_LIST.POST, addBenefitIdToViewedList);
}
我认为问题是 "yield call" - 我应该使用不同的东西吗?
当我调试它时,调用 BENEFITS.VIEWED_LIST.POST 并相应地打印 id 和 action。但是,不会调用 BENEFITS.VIEWED_LIST.ADD。我需要打电话,以便 reducer 可以更新商店。
有什么想法吗?感谢您的帮助!
如果你想安排一个动作到商店的调度,你需要使用 put 这样:yield put(action)
而不是只调用一个函数的调用。