reactjs - 你能强制一个组件只能在打字稿中的某个上下文提供者下使用吗?
问题描述
标题总结了它。有什么方法可以为组件键入预期的可用上下文,因此如果您使用 typescript 在上下文提供程序之外使用组件,则会出现 TS 错误?
const MyContext = createContext<string>(undefined!);
const Consumer = () => {
const text = useContext(MyContext);
return <div>{text}</div>;
};
const WithProvider = () => (
<MyContext.Provider value={"test"}>
<Consumer />
</MyContext.Provider>
);
const Without = () => <Consumer />;
我希望 WithProvider 能够正常工作,而无需抛出 TS 错误。
解决方案
推荐阅读
- performance - isPascal() 方法的时间复杂度是多少
- javascript - GraphQl 突变错误结果
- ruby-on-rails - 使用 Rails 和 mongoid 的 MongoDB 中的 UUID 字段
- python - API调用期间如何循环列表?
- javascript - 在 express 节点 js 中重新渲染 EJS 模板
- javascript - Webpack 如何需要 .node 文件(在 Vue Electron 中使用 WebChimera.js 包)
- networking - 将本地端口从 Raspbian 路由到另一台机器(端口隧道)
- arrays - 计算行元素的 DISTINCT 副本
- c - C程序不打印作为输入给出的字符串
- google-developers-console - 跳过 Google Play 开发者控制台中的发布