Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 如何在repact-redux和typescript中在存储区中添加类型并组合还原器_Reactjs_Typescript_Redux_React Redux - Fatal编程技术网

Reactjs 如何在repact-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

我有一个类型错误,使用react redux和typescript中断了应用程序

错误:

这来自创建我的存储的
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;