nefe / redux-in-chinese

Redux 中文文档
https://cn.redux.js.org/
3.48k stars 660 forks source link

定义根 State 和 Dispatch 类型 例子错误 #503

Open wanglei1900 opened 1 year ago

wanglei1900 commented 1 year ago

中文官网链接 其中useAppDispatch 这个 hook 如果这样使用会报错,应该这样使用export const useAppDispatch = () => useDispatch<AppDispatch>()

// app/store.ts
import { configureStore } from '@reduxjs/toolkit'
// ...

const store = configureStore({
  reducer: {
    posts: postsReducer,
    comments: commentsReducer,
    users: usersReducer
  }
})

// 从 store 本身推断出 `RootState` 和 `AppDispatch` 类型
export type RootState = ReturnType<typeof store.getState>
// 推断出类型: {posts: PostsState, comments: CommentsState, users: UsersState}
export type AppDispatch = typeof store.dispatch
// app/hooks.ts
import { TypedUseSelectorHook, useDispatch, useSelector } from 'react-redux'
import type { RootState, AppDispatch } from './store'

// 在整个应用程序中使用,而不是简单的 `useDispatch` 和 `useSelector`
export const useAppDispatch: () => AppDispatch = useDispatch
export const useAppSelector: TypedUseSelectorHook<RootState> = useSelector