Контекст React 16.3 работает в сети, но не в React Native.
Я реализовал некоторые функции, используя новый контекстный API React 16.3. Это прекрасно работает в браузере, однако тот же код в React Native никогда не работает (с использованием act-native-web для компиляции как в браузер, так и в мобильное приложение expo, которое прекрасно работало, пока не попытался добавить контекст). Когда это терпит неудачу, это регистрирует ошибку:
Нарушение инварианта: Тип элемента недопустим: ожидал строку (для встроенных компонентов) или класс / функцию (для составных компонентов), но получил: объект.
Обычно это означает, что я где-то испортил импорт / экспорт по умолчанию / экспорт, но в этом случае они, кажется, в порядке. Эта ошибка возникает только тогда, когда я пытаюсь использовать компонент createContext(). Это происходит, когда я создаю провайдера, независимо от того, есть ли у меня потребитель или нет.
Root.js
export const RootContext = React.createContext();
export default class Root extends React.Component {
render() {
return (
<View>
<RootContext.Provider value={'testContextValue'}>
<ExampleChildElement />
</RootContext.Provider>
</View>
);
}
}
ExampleChildElement.js
import { RootContext } from '../Root.js'
export class ExampleChildElement extends React.Component {
render() {
return (
<RootContext.Consumer>
{rootContext =>
<View />
}
</RootContext.Consumer>
);
}
}
Что я здесь не так делаю?