打字稿还原

时间:2021-04-27 21:02:20

标签: javascript typescript redux

我开始做我的redux的打字,遇到了这样一个问题,就是useSelector的打字

这是我正在创建的钩子:

import {TypedUseSelectorHook, useSelector} from 'react-redux'
import {RootState} from '../store/create-reducer'

export const UseTypedSelector: TypedUseSelectorHook <RootState> = useSelector

然后他给我一个错误: screen

如何解决这个问题?第二天我无法离开地面,不能使用 useSelector ((state: any) => state? .SESSION)

这是我这边:

创建减速器:

import { combineReducers } from 'redux'

import { STATE } from '../session/types'
import { reducer } from '../session/reducers'

const rootReducer = (asyncReducers: object) => {
  return (
    combineReducers({
      ...asyncReducers,
      [STATE]: reducer,
    })
  )
}

export default rootReducer

export type RootState = ReturnType<typeof rootReducer>

创建商店:

import { applyMiddleware, compose, createStore } from 'redux'
import thunk from 'redux-thunk'

import persistStore from './persist-store'
import persistReducer from './persist-reducer'

const store = (initialState = {}) => {
  const middlewares = [thunk]
  const enhancers: Array<any> = []

  const store = createStore(
    persistReducer({}),
    initialState,
    compose(applyMiddleware(...middlewares), ...enhancers),
  )

  const persistor = persistStore(store)

  return { store, persistor }
}

export default store

索引:

export { default as createReducer } from './create-reducer'
export { default as createStore } from './create-store'
export { default as persistReducer } from './persist-reducer'

persist-reducer:

import { persistReducer } from 'redux-persist'
import storage from 'redux-persist/lib/storage'
import createReducer from './create-reducer'

const persistConfig = { key: 'myproject', storage, whitelist: ['session'] }

const reducer = (asyncReducers: any) => persistReducer(persistConfig, createReducer(asyncReducers))

export default reducer

持久存储:

import { persistStore } from 'redux-persist'

const store = (store: any) => persistStore(store, null, () => {})

export default store

0 个答案:

没有答案