不变违规-元素类型无效-预期为字符串但有对象

时间:2018-11-05 07:31:50

标签: ios iphone react-native react-navigation stack-navigator

这是我在react native项目中的代码之一。它在各个地方使用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 :(得分:0)

自从我解决了这种情况以来,我正在回答自己的问题。

我发现我使用的版本导致了此问题。我使用的是本机0.54.0。然后我升级到以下版本,错误消失了。

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

希望这对某人有帮助。