Use TypeScript for React reducers



我有这样的代码,我连接我所有的减速器:

import { combineReducers } from 'redux';
import { connectRouter } from 'connected-react-router';
import { login } from './login';
import { register } from './register';
import { dashboard } from './dashboard';
import { refreshedToken } from './refreshedToken';
import { updateUserReducer } from './updateUser';
import {History} from "history";
const rootReducer = (history: History) =>
combineReducers({
router: connectRouter(history),
dashboard,
login,
refreshedToken,
register,
updateUserReducer,
});
export default rootReducer;
export type RootState = ReturnType < typeof rootReducer >

I my component I do:

const selector = useSelector((s: RootState) => s);

我也得到数据从选择器:

const httpResponse = selector.updateUserReducer.response;

问题是,我得到一个错误从TypeScript当我悬停在updateUserReducer:

TS2339: Property 'updateUserReducer' does not exist on type 'Reducer { router: RouterState ; dashboard: { dashboardRequest: boolean; user: any; error: string; dashboardSuccess: boolean; } | { dashboardRequest: boolean; user: {}; error: any; dashboardSuccess: boolean; }; login: { ...; } | { ...; }; refreshedToken: { ...; } | { ...; }; register: { ...; }; ...'.

为什么会出现这种情况,如何解决这个问题?

这里是redux文档关于如何在redux和react-redux中使用typescript

这个代码是好的,我认为问题是与你的减速机的返回类型。一步一步地检查文档,以找到您的确切问题。

最新更新