在我的React应用程序中,从API获取一些数据后,我正在尝试将数据存储在localStorage以及我的redux存储中。
错误:操作必须是普通对象。使用自定义中间件进行异步 动作。
这是我的代码:
export const setDataInStore = (myData) => {
return {
type: types.SET_MY_DATA,
myData
};
}
const setDataInLocalStorage = (myData) => {
window.localStorage.myData = myData;
}
export const getMyData = () => {
return (dispatch) => fetch('/api/mydata', fetchOptionsGet())
.then((response) => {
if (response.ok) {
parseJSON(response)
.then(myData => {
dispatch(setDataInStore(myData));
dispatch(setDataInLocalStorage(myData));
})
} else {
// Handle error
}
})
}
问题在于setDataInLocalStorage
功能。当我提出debuggers
时,我发现我进入setDataInLocalStorage
并且myData
由API调用填充。
我在那里做错了什么?
答案 0 :(得分:3)
dispatch
期望返回一个操作对象。在这种情况下,setDataInLocalStorage
不会返回dispatch
执行任何操作的操作。
由于我们只想设置localstorage,我们可以将调度行更改为:
dispatch(setDataInStore(myData));
setDataInLocalStorage(myData);
我们将setDataInLocalStorage()视为正在调用的常规函数。