所以我有一个Navigator View,它的initialRoute为'Login',这个加载很好,但它的内容来自我导入的外部组件。在其中一个中,有一个按钮,它试图调用导航器来改变场景。它到达它,但声明它是未定义的。
我得到的错误是:“this.props.navigator.replace不是函数。(在'this.props.navigator.replace({id:”splash“})中,'this.porps.navigator.replace '未定义)“
不相关的代码已被删除
- '导航器'文件:
export default class Tester extends Component {
render() {
return (
<Navigator
initialRoute={{id: 'login'}}
renderScene={(route, nav) => {return this.renderScene(route, nav)}}
/>
)
}
renderScene(route, nav) {
switch(route.id) {
case 'login':
return <Login navigator={nav} />
case 'splash':
return <Splash navigator={nav} />
}
}
- '登录'文件:
export default class Login extends Component {
render() {
return (
<View>
<LoginForm navigator={navigator} />
</View>
);
}
}
- 'LoginForm'文件:
export default class LoginForm extends Component {
constructor(props) {
super()
navigator = props.navigator;
}
render() {
return (
<View>
<TouchableOpacity onPress={this.moveScene.bind(this)} >
<Text>LOGIN</Text>
</TouchableOpacity>
</View>
)
}
moveScene() {
this.props.navigator.replace({id: "splash"});
}
}