DEV Community

kaede
kaede

Posted on

React Redux Tutorial Part 5 -- useSelector の使い方の復習

why

https://react-redux.js.org/api/hooks#useselector-examples

React Redux で connect の代替となる useSelector の説明があったが、チュートリアルとしてはなかったので、実際に動かしてみる


connect の時の流れ

https://dev.to/kaede_io/react-redux-tutorial-part-4-connect-api-woshi-tute-todo-apuriwozuo-ru-23f9

この記事の時は

redux/actions -> reducers -> redux/store -> src/index/Provider

redux/store -> redux/selectors.js -> Components/.../connect(mapToStateProps)

これで取ってきている


useSelector での流れ

reducers -> redux/store -> Components/.../useSelector

これで取って来れると予測する。


CRA with TS して store と reducers を作成する

npx create-react-app redux-useselector --template typescript 
Enter fullscreen mode Exit fullscreen mode

CRA with TS で redux-useselector という名前で React アプリを作成

https://dev.to/kaede_io/react-redux-part-1-react-redux-nodao-ru-5o1

これの流れの通りに再びやってみた。

const counterSlice = createSlice({ name: 'counter', initialState, reducers: { increment: (state) => { state.value += 1 }, decrement: (state) => { state.value -= 1 }, incrementByAmount: (state, action: PayloadAction<number>) => { state.value += action.payload }, }, }) export const { increment, decrement, incrementByAmount } = counterSlice.actions // exporting increment and decrement export default counterSlice.reducer // exporting counter state 
Enter fullscreen mode Exit fullscreen mode

改めてみると、slice ファイルでグローバルステート定義して
export default で出して

export function Counter() { const count = useAppSelector((state) => state.counter.value) 
Enter fullscreen mode Exit fullscreen mode

useSelector (をラップしたもの) でグローバルステートを持ってきている。

Top comments (0)