Нарушение инварианта - Недопустимый тип элемента - Ожидается строка, но получен объект - PullRequest
0 голосов
/ 05 ноября 2018

Вот один из моих кодов в реактивном нативном проекте. Он использует react-navigation версию 2 в разных местах.

render() {
        const StackNavigator = createStackNavigator({
            Login: {
                screen: LoginScreen
            },
            SelectInstance: {
                screen: SelectInstanceScreen
            },
            ForgotPassword: {
                screen: ForgotPasswordScreen
            },
            App: {
                screen: AppScreen
            }
        }, {
            initialRouteName: this.state.initialRoute,
            headerMode: 'none',
            navigationOptions: {
                headerVisible: false,
            },
            cardStyle:{backgroundColor:'white'}
        });

        let view;
        if (this.state.initialRoute === '') {
            view = <Spinner
                visible={true}
                color={"#f88220"}
            />
        } else {
            view = <StackNavigator/>;
        }

        return (
            view
        )
    }

Проблема в том, что если блок запущен, он выдает ошибку как

Invariant Violation: Element type is invalid
Expected a string(for built-in components) but got: object
Check the render method of 'SceneView'

Это происходит только в моей сборке iOS. Сборка Android работает просто отлично. Может кто-нибудь помочь с гораздо большим опытом iOS?

PS - Я отлаживал приложение различными способами. createStackNavigator является точным местом с проблемой.

1 Ответ

0 голосов
/ 14 ноября 2018

Я отвечаю на свой вопрос, так как мне удалось справиться с ситуацией.

Я обнаружил, что используемые мной версии вызвали эту проблему. Я использовал реактивный род 0.54.0. Затем я обновился до следующих версий, и ошибки исчезли.

"react": "16.5.0",
"react-native": "0.57.2",
"react-navigation": "^2.17.0"

Надеюсь, это кому-нибудь поможет.

...