【发布时间】:2018-03-21 12:40:14
【问题描述】:
我在 React 中看到的所有新的 Context API 示例都在一个文件中,例如https://github.com/wesbos/React-Context.
当我尝试让它跨多个文件工作时,我显然遗漏了一些东西。
我希望制作一个GlobalConfiguration 组件(下面的MyProvider)在上下文中创建和管理值,为从中读取的任何子组件(下面的MyConsumer)做好准备。
App.js
render() {
return (
<MyProvider>
<MyConsumer />
</MyProvider>
);
}
provider.js
import React, { Component } from 'react';
const MyContext = React.createContext('test');
export default class MyProvider extends Component {
render() {
return (
<MyContext.Provider
value={{ somevalue: 1 }}>
{this.props.children}
</MyContext.Provider >
);
}
}
consumer.js
import React, { Component } from 'react';
const MyContext = React.createContext('test');
export default class MyConsumer extends Component {
render() {
return (
<MyContext.Consumer>
{(context) => (
<div>{context.state.somevalue}</div>
)}
</MyContext.Consumer>
);
}
}
不幸的是,在控制台中失败了:
consumer.js:12 Uncaught TypeError: Cannot read property 'somevalue' of undefined
我完全没有抓住重点吗?是否有文档或示例说明如何跨多个文件工作?
【问题讨论】:
-
试试
<div>{context.somevalue}</div>。 -
@Striped 在控制台中没有错误,但在
context中也没有。 -
典型的错误文档,可能没有人会在单个文件中使用它,但可以在文档中使用它...
标签: reactjs