🔧
ReduxのstateをRedux DevToolsを使って手動で変更する
Reduxの状態を確認できるchromeの拡張機能の「Redux DevTools」を利用することで、手動でReduxのstateを変更できる。
手順
Dispatcher
を表示する
1. 開発者ツール > Reduxを表示した際に、Actionの入力欄などが表示されていない場合は、赤枠で囲った右下のShow Dispatcher
ボタンをクリックすると表示される。
↓ Show Dispatcher
ボタンをクリック
2. Actionを入力する
手順1で表示されたActionの入力欄に、Reduxのstoreへ送信したいActionを入力する。
基本的なActionの入力形式
{
type: "sliceのnameプロパティの値/実行するreducerの名前",
payload: "reducerに渡すデータ" // 実行するreducerがactionを受け取らない場合は、省略する。
}
3. Dispatchボタンをクリックする
最後に、右下に表示されているDispatchボタンクリックすることで、Reduxのstoreへ手順2で入力したActionが送信され、stateが更新される。
Actionの入力例
以下のようなSliceを定義している場合に、それぞれのreducerを実行するためのActionの例を記載する。
userSlice.ts
import { createSlice, PayloadAction } from "@reduxjs/toolkit";
export type Name = {
first: string;
last: string;
};
export type User = {
name: Name;
email: string;
};
const initialState: User = {
name: {
first: "",
last: "",
},
email: "",
};
export const userSlice = createSlice({
name: "user",
initialState,
reducers: {
setUser: (_, action: PayloadAction<User>) => {
return action.payload;
},
setName: (state, action: PayloadAction<Name>) => {
state.name = action.payload;
},
setEmail: (state, action: PayloadAction<string>) => {
state.email = action.payload;
},
resetState: () => {
return initialState;
},
},
});
setUser
{
type: "user/setUser",
payload: {
name: {
first: "太郎",
last: "田中",
},
email: "taro@email.com"
}
}
setName
{
type: "user/setName",
payload: {
first: "太郎",
last: "田中",
}
}
setEmail
{
type: "user/setEmail",
payload: "tanaka@email.com"
}
resetState
{
type: "user/resetState",
}
Discussion