Redux Toolkit
前言:有關 Redux 基礎概念可以看上一篇
可以省去部分步驟,簡單地設定 Redux
安裝
yarn add react-redux redux @reduxjs/toolkit使用步驟
1.設定 provider
import React from 'react';
import ReactDOM from 'react-dom';
import { Provider } from 'react-redux';
import App from './App';
import store from './store';
ReactDOM.render(
<React.StrictMode>
<Provider store={store}>
<App />
</Provider>
</React.StrictMode>,
document.getElementById('root'),
);2.新增 store
/store/index.js
3.新增 redux-toolkit 版本的簡化 reducer
/store/user.js
這邊記得
export default slice.reducer不是slice.reducers
4.從 component 發送 action
App.js
如果用 Class component 可以使用 connect 接入 store state 與 dispatch
Next.js 整合 redux toolkit
/pages/_app.tsx
主要增加 _app.tsx 檔案,其他步驟與上述相同。
動態 State 內容
與 Redux 原本作法類似:
加入 Typescript
如果出現 (dispatch: any) => Promise 可以加上如下
store.ts 內新增
2.component 內 useDispatch 加上 type
https://redux.js.org/usage/usage-with-typescript
Redux toolkit 結合 localstorage
用途:存入 state 到 localstorage,使用 redux-localstorage-simple 套件
store.js
如果用 next.js 出現 Hydration failed because the initial UI does not match what was rendered on the server
可以參考:https://github.com/vercel/next.js/discussions/35773#discussioncomment-2840696
persist 也可參考官方使用的另一個套件 redux-persist: https://redux-toolkit.js.org/usage/usage-guide#use-with-redux-persist
Last updated
Was this helpful?