我如何替换我的 redux 操作并使用创建操作库?
how can i replace my redux actions and use create actions library?
我正在寻找可以减少 redux 样板文件的 redux 库
最近我发现了 reduxsouce 和 redux-actions 这有助于减少操作对象代码重写。在我之前所有的动作定义项目中,我会为所有动作创建一个文件
和
操作看起来像这样
export function requestInit() {
return {
type: types.REQUEST_INIT,
payload: {
loading: true,
},
};
}
现在,如果我想删除动作定义并切换到 "createaction",我该如何用 redux-actions 中的 createaction 方法替换它?
还有我如何处理或 "put" 来自 saga 的其他失败或成功操作
(发电机功能)?
查看 redux-action docs,动作定义应如下所示:
import { createAction, handleAction } from 'redux-actions';
const defaultState = { loading: false };
export const requestInit = createAction(types.REQUEST_INIT); // creates an action creator
// Define your reducer here, as second argument.
// First argument is the action type, third is defaultState
handleAction(
types.REQUEST_INIT,
(state, action) => ({
loading: action.payload.loading
}),
defaultState
);
...
// in saga.js or other place you want to use the action
requestInit({ loading: true });
您可以用同样的方式添加其他操作来处理您的请求。调度和处理错误应该与普通操作完全一样,即:
yield put({ type: response, payload: {...} });
希望对您有所帮助。
我正在寻找可以减少 redux 样板文件的 redux 库 最近我发现了 reduxsouce 和 redux-actions 这有助于减少操作对象代码重写。在我之前所有的动作定义项目中,我会为所有动作创建一个文件 和 操作看起来像这样
export function requestInit() {
return {
type: types.REQUEST_INIT,
payload: {
loading: true,
},
};
}
现在,如果我想删除动作定义并切换到 "createaction",我该如何用 redux-actions 中的 createaction 方法替换它?
还有我如何处理或 "put" 来自 saga 的其他失败或成功操作 (发电机功能)?
查看 redux-action docs,动作定义应如下所示:
import { createAction, handleAction } from 'redux-actions';
const defaultState = { loading: false };
export const requestInit = createAction(types.REQUEST_INIT); // creates an action creator
// Define your reducer here, as second argument.
// First argument is the action type, third is defaultState
handleAction(
types.REQUEST_INIT,
(state, action) => ({
loading: action.payload.loading
}),
defaultState
);
...
// in saga.js or other place you want to use the action
requestInit({ loading: true });
您可以用同样的方式添加其他操作来处理您的请求。调度和处理错误应该与普通操作完全一样,即:
yield put({ type: response, payload: {...} });
希望对您有所帮助。