React Native:得到一个"没有定义路由密钥"错误

时间:2017-12-10 20:22:17

标签: react-native react-redux react-native-router-flux

我的代码位于here

我收到的错误是:没有为关键employeeList定义路由。必须是以下之一:' auth',' main'。我检查了router.js,这个组件嵌套在主场景中,所以我不确定是什么问题。当我想创建一名员工或删除一名员工时,我得到了这个。我认为这与导航回员工屏幕有关。

enter image description here

1 个答案:

答案 0 :(得分:2)

从react-native-router-flux更改并导入堆栈,并为root,auth执行此操作。

当你转到堆栈的第一个元素时,用它的键调用它。这意味着如果你想转到employeeList,你必须调用Actions.main()。

这就是为什么人们通常用屏幕名称命名他们的父堆栈,然后首先使用" _"字首。您可以使用employeeList命名堆栈,使用_employeeList命名第一个场景。试试这个,请告诉我结果

<Router navigationBarStyle={{ backgroundColor: '#2980b9'}}  titleStyle={{ color:'#fff', alignSelf:'center' }} >
        <Stack key="root" hideNavBar={true}>
            <Stack key='auth'>
                <Scene key='login' component={LoginForm} title = 'Please login' />
            </Stack>
            <Stack key='employeeList'>
                <Scene
                    key='_employeeList'
                    component={EmployeeList}
                    title ='Employee'
                    rightTitle="Add"
                    onRight={()=> Actions.createEmployee()} 
                    initial 
                    rightButtonTextStyle ={{ color:'white',alignSelf:'center',marginRight:5 }}
                /> 
                <Scene
                    key='createEmployee'
                    component={EmployeeCreate}
                    title='Create Employee'            
                />     
            </Stack>
        </Stack>
    </Router>