React 16.3中的上下文组件无效

Dav*_*hal 10 javascript reactjs

我正在尝试在React 16.3.1中使用新的Context组件.我正在运行一个非常简单的例子:

const TestContext = React.createContext();

export default class Test extends Component {
  render () {
    return (
      <TestContext.Provider value="abc">
        <TestContext.Consumer>
          {value => (
            <div>{value}</div>
          )}
        </TestContext.Consumer>
      </TestContext.Provider>
    );
  }
}
Run Code Online (Sandbox Code Playgroud)

但是代码不会呈现,而是产生此错误:

Uncaught Error: Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: object.

似乎Provider和Consumer组件都不是有效组件,并且不能由React呈现.

我在这里错过了什么吗?

Dav*_*hal 17

弄清楚了!

我将React更新为16.3.1,但没有更新ReactDOM.

运行npm uninstall -s react-dom && npm i -s react-dom更新到16.3.1并修复了问题.

旁注,我不希望新的Context API依赖于ReactDOM.

  • 我写了为什么会发生这种情况https://overreacted.io/how-does-setstate-know-what-to-do/ (8认同)