Reactjs React上下文没有任何值
学习它。我有以下代码 My Package.json有如下条目Reactjs React上下文没有任何值,reactjs,Reactjs,学习它。我有以下代码 My Package.json有如下条目 <pre> { "name": "myapp", "version": "0.1.0", "private": true, "dependencies": { "bootstrap": "^3.3.7", "react": "^16.4.0", "react-dom": "^16.4.0", "react-router-dom": "^4.3.1", "react-
<pre>
{
"name": "myapp",
"version": "0.1.0",
"private": true,
"dependencies": {
"bootstrap": "^3.3.7",
"react": "^16.4.0",
"react-dom": "^16.4.0",
"react-router-dom": "^4.3.1",
"react-scripts": "1.1.4",
"webpack": "^3.11.0"
},
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test --env=jsdom",
"eject": "react-scripts eject"
},
"devDependencies": {
"babel-loader": "^7.1.4",
"babel-preset-es2015": "^6.24.1",
"babel-preset-react": "^6.24.1",
"babel-preset-stage-2": "^6.24.1",
"webpack-dev-server": "^3.1.4"
}
}
<pre>
import React from "react";
import MyProvider, {MyContext} from "./WeatherType";
class Title extends React.Component{
render(){
return(
<div>
<h1 >My Report</h1>
<div>
<MyContext.Consumer>
{(context) =>
<p>I have a {context}</p>
}
</MyContext.Consumer>
</div>
</div>
);
}
}
export default Title;
{
“名称”:“myapp”,
“版本”:“0.1.0”,
“私人”:没错,
“依赖项”:{
“引导”:“^3.3.7”,
“反应”:“^16.4.0”,
“react dom”:“^16.4.0”,
“反应路由器dom”:“^4.3.1”,
“反应脚本”:“1.1.4”,
“网页包”:“^3.11.0”
},
“脚本”:{
“开始”:“反应脚本开始”,
“构建”:“反应脚本构建”,
“测试”:“反应脚本测试--env=jsdom”,
“弹出”:“反应脚本弹出”
},
“依赖性”:{
“巴别塔加载器”:“^7.1.4”,
“babel-preset-es2015”:“^6.24.1”,
“巴别塔预设反应”:“^6.24.1”,
“babel-preset-stage-2”:“^6.24.1”,
网页包开发服务器“^3.1.4”
}
}
我创建了一个组件,如下所示
<pre>
{
"name": "myapp",
"version": "0.1.0",
"private": true,
"dependencies": {
"bootstrap": "^3.3.7",
"react": "^16.4.0",
"react-dom": "^16.4.0",
"react-router-dom": "^4.3.1",
"react-scripts": "1.1.4",
"webpack": "^3.11.0"
},
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test --env=jsdom",
"eject": "react-scripts eject"
},
"devDependencies": {
"babel-loader": "^7.1.4",
"babel-preset-es2015": "^6.24.1",
"babel-preset-react": "^6.24.1",
"babel-preset-stage-2": "^6.24.1",
"webpack-dev-server": "^3.1.4"
}
}
<pre>
import React from "react";
import MyProvider, {MyContext} from "./WeatherType";
class Title extends React.Component{
render(){
return(
<div>
<h1 >My Report</h1>
<div>
<MyContext.Consumer>
{(context) =>
<p>I have a {context}</p>
}
</MyContext.Consumer>
</div>
</div>
);
}
}
export default Title;
从“React”导入React,{Component};
export const MyContext=React.createContext();
类MyProvider扩展组件{
陈述={
isCurrentWeather:错,
is3DayWeather:false,
IS16天天气:假,
currentWeatherClicked:()=>{
这是我的国家(
{
isCurrentWeather:是的,
is3DayWeather:false,
IS16天天气:假
}
)
}
}
render(){
返回(
{this.props.children}
)
}
};
导出默认MyProvider
在另一个组件中,我希望使用此提供程序作为消费者,如下所示。但上下文没有任何价值。甚至连州信息也没有
从“React”导入React;
从“/WeatherType”导入MyProvider,{MyContext};
类标题扩展了React.Component{
render(){
返回(
我的报告
{(上下文)=>
我有一个{context}
}
);
}
}
导出默认标题;
需要知道为什么我的上下文没有任何值吗?当我添加context.state时,context将包含一个带有state的对象,即
context.state.is3DayWeather
。将错误获取为TypeError:无法读取未定义TypeError的属性“state”:无法读取未定义(匿名函数)C:/ReactWorkspace/myapp/src/components/Title.js的属性“state”:16{(context)=>我有一个{context.state.isCurrentWeather}}是MyProviderNo中的标题包装。标题是一个单独的js文件,MyProvider是一个单独的js文件