1

我无法获取contextType作为新 React Context API 一部分的 React 属性。文件说:

可以为类的 contextType 属性分配一个由 React.createContext() 创建的 Context 对象。这使您可以使用 this.context 使用该上下文类型的最接近的当前值。您可以在任何生命周期方法中引用它,包括渲染函数。

除非我错过了什么,否则下面的代码应该this.context在课堂上可用App

import React from "react";
import ReactDOM from "react-dom";

const MyContext = React.createContext({
  on: false
});

import "./styles.css";

class App extends React.Component {
  render() {
    console.log("context: ", this.context);
    return (
      <div className="App">
        <h1>Hello CodeSandbox</h1>
        <h2>Start editing to see some magic happen!</h2>
      </div>
    );
  }
}
App.contextType = MyContext;

const rootElement = document.getElementById("root");
ReactDOM.render(<App />, rootElement);

(此处为示例)

但是,当此代码运行时,日志语句只打印一个空对象。我希望它打印出我提供给React.createContext函数的默认状态。

有人可以帮我理解这里发生了什么吗?

4

1 回答 1

3

我认为你需要React>=16.6.0来实现这个功能。我在您的代码沙箱中更新了反应,它对我有用:https ://codesandbox.io/s/w66k2k8o5l

于 2018-11-20T14:28:45.110 回答