私のReactアプリケーションでは、APIからデータを取得した後に、私のreduxストアとlocalStorageにデータを保存しようとしています。私は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'は、要求を減速機に送るアクションオブジェクトを期待します。アクションオブジェクトを期待しない関数は 'setDataInLocalStorage'です。 – Sam
偉大なキャッチ、あなたは100%右です。応答を書いて混ざり、私はそれを更新します! – dpaulus
私はまだ 'myData'が' localStorage'に格納されていないという問題があります。私は 'setDataInLocalStorage'を打ち、' myData'もそこにあります。その行は正常に実行されているようですが、次回に 'localStorage'をチェックすると、私のデータはそこにありません。なぜデータが 'localStorage'に格納されていないのでしょうか? – Sam