【问题标题】:null is not an object (evaluating 'AppNavigator.router')null 不是对象(评估“AppNavigator.router”)
【发布时间】:2017-08-09 14:48:00
【问题描述】:
**
我需要帮助!! null 不是对象(评估“AppNavigator.router”)
**
/**
* Created by nihalyorulmaz on 08/08/2017.
*/
import React from 'react';
import { Scene, Router} from 'react-native-router-flux';
import LoginForm from '../../components/components/LoginForm';
const RouterComponent = () => {
return (
<Router>
<Scene key = "login" component = {LoginForm} title = "Please Login"/>
</Router>
);
};
export default RouterComponent;
【问题讨论】:
标签:
react-native
redux
router
react-native-router-flux
【解决方案1】:
首先检查你的 react-native-router-flux 的版本。如果版本
是 3,用<Scene key="root" > 包裹你的<Scene>:
const RouterComponent = () => {
return (
<Router>
<Scene key="root">
<Scene key="login" component={LoginForm} title="Please Login" />
</Scene>
</Router>
);
};
对于版本 4,将 <Scene key="root"> 替换为 <Stack key="root"> 并且不要忘记导入 import {Stack} from 'react-native-router-flux:
import { Router, Scene, Stack } from 'react-native-router-flux';
const RouterComponent = () => {
return (
<Router>
<Stack key="root">
<Scene key="login" component={LoginForm} title="Please Login" />
</Stack>
</Router>
);
};
【解决方案2】:
实际上,您需要将场景包装在文档中未提及的根场景 <Scene key="root"> 中。
所以你的 RouterComponent 如下所示:
const RouterComponent = () =>{
return(
<Router>
<Scene key="root" >
<Scene key="login" component ={LoginForm} title="Please Login"/>
</Scene>
</Router>
);
};
【解决方案3】:
只需使用 key="root" 将您当前的场景添加到另一个场景中
<Scene key="root" >
<Scene
key="login"
component={LoginForm}
title="Please Login"/>
</Scene>