为了账号安全,请及时绑定邮箱和手机立即绑定

Redux-saga 如何在 saga 内部向请求传递参数

Redux-saga 如何在 saga 内部向请求传递参数

噜噜哒 2022-05-26 16:46:30
我有一些代码要更新。这不是我的代码,所以我不想要太多更改。它使用 redux-saga 和 axios。我想将一些论点传递给 saga我在sagas.js中的传奇export function* getInfoSaga() {    while (true) {        yield take(mutations.GET_INFO);        const url1 = `${url}/api/getInfo/1-100`;        const logInfo = yield axios.get<any>(url1).then(response => response);        yield put(mutations.setInfo(logInfo.data.data));    }}突变.jsexport const GET_INFO = 'GET_INFO';export const getInfo = () => ({    type: GET_INFO,});sagas 在index.js中运行const s = sagas as any;for (const saga in s) {    sagaMiddleware.run(s[saga]);}在某些文件中,该操作由带有事件的按钮运行: onClick={() => dispatch({                        type: 'GET_INFO',                    })}我想传递一些参数来修改请求 url,我尝试在 dipatch 请求中获取附加对象,并将参数添加到 sagas.js 和 mutatuions.js 中的生成器,但是我得到一个错误,无法访问未定义的属性
查看完整描述

2 回答

?
泛舟湖上清波郎朗

TA贡献1818条经验 获得超3个赞

你有没有尝试过:


onClick={() => dispatch({

  type: 'GET_INFO',

  url: 'your/url/goes/here'

})}


export function* getInfoSaga(action) {

    while (true) {

        yield take(mutations.GET_INFO);

        const url1 = `${action.url}/api/getInfo/1-100`;

        const logInfo = yield axios.get<any>(url1).then(response => response);

        yield put(mutations.setInfo(logInfo.data.data));

    }

}


查看完整回答
反对 回复 2022-05-26
?
繁星coding

TA贡献1797条经验 获得超4个赞

更新:传递有效载荷并仅从“take”分配返回值


onClick={() => dispatch({

  type: 'GET_INFO',

  payload: {

    key1: value1

    // other values here

  }

})}


export function* getInfoSaga() {

   const action = yield take(mutations.GET_INFO);

   // action.payload.key1

}


查看完整回答
反对 回复 2022-05-26
  • 2 回答
  • 0 关注
  • 192 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信