reactjs - 反应出口 React.createContext 未定义
问题描述
我正在尝试学习 React Context 并陷入困境。需要帮忙。
应用程序.js
import React from 'react';
import Header from './components/Header';
export const MyContext = React.createContext("Default");
class App extends React.Component {
render() {
return (
<MyContext.Provider value="dark">
<Header />
</MyContext.Provider>
);
}
}
export default App;
标头/index.js
import React, { Component } from 'react'
import { MyContext } from "./../../App";
class Header extends Component {
//static contextType = MyContext;
render() {
return (
<div>
{this.context}
</div>
)
}
}
Header.contextType = MyContext;
export default Header;
出现错误MyContext is not defined。当我将 Header 类移动到 App.js 时它可以工作
我究竟做错了什么?Tnx 为您提供帮助
解决方案
有两种使用上下文的方法:
1.通过使用上下文消费者:
<MyContext.Consumer>
{
contextValue => {
return <div>
{value}
</div>
}
}
<MyContext.Consumer>
2.通过将上下文分配给对象:
static contextType = MyContext;
render(){
const {value1,value2.......} = this.context
}
有关Context的更多信息,请访问 React 官方页面。 https://reactjs.org/docs/context.html
推荐阅读
- sql-server - vb.net,sql命令代码中的数据类型不兼容
- python - 断言错误 (-215) npoints >= 0 并且从验证码图像中提取字母时出错
- python - 合并csv文件时删除列并替换不同列中的标题
- angular - 根据条件切换Validatos.required,angular6
- matlab - 尝试读取大数据文件并将其存储在工作区中,以便其他功能可以使用它
- ruby - 如何在 ruby 客户端脚本中安全地存储身份验证凭据?
- c++ - 从服务调用的 VirtualProtectEx 返回 false,但 GetLastError 为 0(成功)
- ruby - 在 Windows 10 的 Ubuntu 上安装 Ruby 时,如何更改 Ruby 的 atom-runner 路径?
- java - 我的 Android 应用程序不支持 Android 版本 9
- android - Android,Kotlin:如何在 kotlin 的情况下将 MainActivity 的方法调用到子类方法中?