Контекст 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>
        );
    }
}

Что я здесь не так делаю?

0 ответов

Другие вопросы по тегам