javascript - ReduxThunk 如何将操作数据传递到原始状态?
问题描述
我想将动作数据传递到初始状态,而无需等待数据被获取。
我按照本教程进行操作,但我正在尝试修改它以解析任何 JSON 数据,这也有效,但我一直必须输入用户名来获取数据,我希望它可以从初始状态中获取。对不起,如果我没有解释清楚,但我希望你明白。
const initialState = {
userData: {},
isFetching: false,
isError: false
};
const asyncReducer = (state = initialState, action) => {
switch (action.type) {
case "FETCH_USER":
return Object.assign({}, state, {
isFetching: true,
userData: {},
isError: false
});
case "FETCHED_USER":
return Object.assign({}, state, {
userData: action.data,
isFetching: false,
isError: false
});
case "RECEIVE_ERROR":
return Object.assign({}, state, {
isError: true,
isFetching: false
});
default:
return state;
}
};
export default asyncReducer;
解决方案
您的问题有点不清楚,并且没有操作代码可以执行? 如果是这种情况,您可以非常简单地在调度后向 thunk 添加第二个参数并获取状态。然后,您将拥有状态值供您修改。因此,您可以在操作中执行以下操作:
const myAction = () => (dispatch, getState) => {
const userData = getState().userData;
...do your stuff with that
dispatch({
type: "FETCHED_USER",
data: new_stuff
});
}
推荐阅读
- javascript - NodeJS 和 MongoDB 中的多个查询
- python - 在 pip install 上出现无效的语法错误
- mongodb - 由于创建 mongoTemplate bean 错误,Spring boot + mongo Heroku 部署失败
- kubernetes - 使用 AGE 的标签列出 kubernetes pvc
- html - 为什么css不能设置样式带有元素的元素使用css控制图像的大小?
- java - 以编程方式使用 JaCoCo API
- vb.net - 形式光标不变
- python - 绘制阈值(precision_recall 曲线)matplotlib/sklearn.metrics
- c++ - 给定一个仅由 4 个不同字母组成的字符串,它有多少个排列而没有两个连续的字母?
- c++ - C++中三角矩阵的嵌套循环