调用更新本地存储的操作(没有 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) 而不是只调用一个函数的调用。