Все примеры, которые я видел в новом API контекста в React, находятся в одном файле, например 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
Я полностью упустил момент? Есть ли документация или пример того, как это работает в нескольких файлах?