【发布时间】:2018-12-01 22:06:14
【问题描述】:
我使用 create react app 创建了一个 react typescript 应用程序。我现在想要一个我想要在我的所有组件中访问的上下文:
export const UserContext = React.createContext<{name: string}>({name: 'Foo'});
上下文与主应用组件的状态相关联。这种状态确实会改变,因此组件的上下文值也应该改变。
<UserContext.Provider value={this.state}>
<MainPage/>
</UserContext.Provider>
我遵循了关于如何在组件的上下文中设置的文档字符串建议,所以有这个:
class MainPage extends React.Component {
static contextType = UserContext;
context!: React.ContextType<typeof UserContext>;
public render() {
return <div>{this.context.name}</div>
}
}
但是this.context.name 始终为空。我在 应用程序组件 中放置了一个 div,它的值链接到 this.state,它确实显示了与上下文不同的值。当代码以原始反应/create-react-app 编写时,我正在努力工作,而我在@types/react 中相同的组件下?
有谁知道如何在 typescript 的组件类中实现上下文?
【问题讨论】:
-
@types/react 的行为并没有什么不同。它没有运行时行为,它只是一个声明文件,用于静态检查代码是否存在错误。
标签: reactjs typescript