0
在我的React应用程序中,从API中获取一些数据后,我试图将数据存储在localStorage以及我的redux存储中。我不断收到尝试将数据保存到localStorage
Error: Actions must be plain objects. Use custom middleware for async actions.
这里是我的代码:
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调用填充。
我在那里做错了什么?
难道不是相反吗? 'setDataInStore'的确期待一个动作对象,然后将请求发送给reducer。不期待动作对象的函数是'setDataInLocalStorage'。 – Sam
很棒,你100%正确。写了回应后,我就更新了! – dpaulus
我仍然存在的问题是'myData'没有存储在'localStorage'中。我打了'setDataInLocalStorage'并且'myData'也在那里。该行似乎执行正常,但下次我检查'localStorage',我的数据不在那里。任何想法为什么数据不被存储在'localStorage'中? – Sam