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