我有一些代码要更新。这不是我的代码,所以我不想要太多更改。它使用 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));
}
}
繁星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
}
添加回答
举报
0/150
提交
取消