繁体   English   中英

不能在 React Typescript 中使用 useContext

[英]cannot use useContext in React Typescript

我正在使用上下文 API 来逃避道具钻探,并且我创建了如下上下文:

const {
  Provider,
  Consumer,
} = React.createContext<Context>({
  carNames: [],
});

并提供如下上下文:

<Provider
      value={{
        carNames
      }}
    >
      {children}
    </Provider>

因此,为了使用上下文值,我想使用useContext()但是因为我从 createContext 中解构了 Consumer 和 Provider。 我应该将什么值传递给useContext(???)的参数。 试过这个useContext({Consumer, Provider})但没有结果😅。

不知道为什么你需要解构它。 这是一个工作示例:

应用程序.tsx

import { ContextProvider } from "../ContextProvider";

...

  const contextValue = {
    carValues,
    setCarValues,
  };

  return (
    <ContextProvider.Provider value={contextValue}>
      ...
    </ContextProvider.Provider>
  );
};

ContextProvider.tsx

export interface IContextProvider {
  carValues: ICarVlaues[];
  setCarValues: Dispatch<SetStateAction<ICarValues[]>>;
}

export const ContextProvider = createContext<IContextProvider>({
  carValues: [],
  setCarValues: () => {},
});

像这样使用它:

  const { carValues } = useContext(ContextProvider);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM