Reactjs 如何在repact-redux和typescript中在存储区中添加类型并组合还原器
我有一个类型错误,使用react redux和typescript中断了应用程序 错误: 这来自创建我的存储的Reactjs 如何在repact-redux和typescript中在存储区中添加类型并组合还原器,reactjs,typescript,redux,react-redux,Reactjs,Typescript,Redux,React Redux,我有一个类型错误,使用react redux和typescript中断了应用程序 错误: 这来自创建我的存储的root\u store.ts文件: const persistConfig = { key: 'root', storage }; const persistedReducer = persistReducer(persistConfig, rootReducer); const configureStore = () => { const middleware
root\u store.ts
文件:
const persistConfig = {
key: 'root',
storage
};
const persistedReducer = persistReducer(persistConfig, rootReducer);
const configureStore = () => {
const middlewares = [thunk];
const middlewareEnhancer = applyMiddleware(...middlewares);
const enhancers = [middlewareEnhancer];
const composedEnhancers = composeWithDevTools(...enhancers);
const store = createStore(persistedReducer, composedEnhancers);
const peristor = persistStore(store);
return { store, peristor };
};
export const { store, peristor } = configureStore();
在我的根部减压器上。我有这个密码
export const rootReducer = combineReducers({
user
});
export type RootState = ReturnType<typeof rootReducer>;
这是用户操作的代码
export const setupUserOnSuccessLoginORSignup = (user: IUser): ISetupUserOnSuccessLoginORSignup => ({
type: UserEnumTypes.USER_INFO,
payload: {
...user
}
});
export const logoutUser = (): ILogoutUser => ({
type: UserEnumTypes.USER_LOGOUT,
payload: {
...userInitialState
}
});
以下是用户的操作类型:
export enum UserEnumTypes {
USER_INFO = 'USER_INFO',
USER_LOGOUT = 'USER_LOGOUT'
}
export interface ISetupUserOnSuccessLoginORSignup {
type: typeof UserEnumTypes.USER_INFO;
payload: {
id: number | null;
username: string;
email: string;
createdAt?: string;
updatedAt?: string;
usersGameGroups?: IUsersGameGroup[];
posts?: IPost[];
};
}
export interface ILogoutUser {
type: typeof UserEnumTypes.USER_LOGOUT;
payload: {
id: number | null;
username: string;
email: string;
};
}
export type UserActionTypes = ISetupUserOnSuccessLoginORSignup | ILogoutUser;
我遵循了redux指南
读这个相反的问题
虽然很奇怪,因为他没有导出CombineReducer,但可能是一个文件
我想添加
any
输入const-store:any=createStore(persistedReducer,composedEnhancers)代码>这将修复错误,但是否可取,我担心的是,当我将道具映射到我的组件时,我将丢失类型检查?查看错误,我猜在您调度操作时,您的负载中缺少某些内容,或者我建议您查看类型安全操作包。您可以使用这个typesafe actions包来确保您的reducer方法将从actions接收正确的负载,而不是从actions导出单个类型。所以我检查了每个动作的每个有效载荷,我的有效载荷中没有丢失的属性。所有属性都在那里。此外,我尝试用操作扩展我的接口,或者任何操作仍然有相同的错误查看错误,我猜在您调度操作时,负载中缺少了一些内容,或者我建议您查看类型安全操作包。您可以使用这个typesafe actions包来确保您的reducer方法将从actions接收正确的负载,而不是从actions导出单个类型。所以我检查了每个动作的每个有效载荷,我的有效载荷中没有丢失的属性。所有属性都存在。此外,我尝试用操作扩展我的接口,或者任何操作仍然有相同的错误
export enum UserEnumTypes {
USER_INFO = 'USER_INFO',
USER_LOGOUT = 'USER_LOGOUT'
}
export interface ISetupUserOnSuccessLoginORSignup {
type: typeof UserEnumTypes.USER_INFO;
payload: {
id: number | null;
username: string;
email: string;
createdAt?: string;
updatedAt?: string;
usersGameGroups?: IUsersGameGroup[];
posts?: IPost[];
};
}
export interface ILogoutUser {
type: typeof UserEnumTypes.USER_LOGOUT;
payload: {
id: number | null;
username: string;
email: string;
};
}
export type UserActionTypes = ISetupUserOnSuccessLoginORSignup | ILogoutUser;