【发布时间】:2016-10-14 09:36:23
【问题描述】:
我想在react-native.中右击导航抽屉打开新屏幕
在 Login submit 按钮上,我调用了以下代码:
Login.js
this.props.navigator.push({
id: 'FirstScreen',
title: 'First Screen',
iconRight: 'map',
rightPress: this.onPress, // method to redirect to second screen
rightText: 'list',
passProps: {
api_token: this.state.login_token
}
});
//navigate to second screen
onPress() {
this.props.navigator.push({
id: "SecondScreen",
title: 'Second Screen',
});
}
但我在这条线上遇到了错误。
this.props.navigator.push({
id: "SecondScreen",
title: 'Second Screen',
});
出现这些错误:
未定义不是一个对象(评估'this.props.navigator')
未处理的 JS 异常:未定义不是对象(评估 'this.props.navigator')
App.js
_renderScene(route, navigator) {
navigator.navigate = this.navigate;
switch (route.id) {
case ‘Login’:
return ( <Login navigator={navigator} {...route.passProps} />);
case ‘FirstScreen’:
return ( <FirstScreen navigator={navigator} {...route.passProps} />);
case 'SecondScreen':
return ( <SecondScreen navigator={navigator} {...route.passProps} />);
}
}
Navigation.js
module.exports = function (scene) {
var componentMap = {
'Login': {
title: 'Login',
id: 'Login'
},
'FirstScreen': {
title: 'First Screen',
id: 'FirstScreen'
},
'SecondScreen': {
title: 'Second Screen',
id: 'SecondScreen'
}
}
return componentMap[scene];
}
【问题讨论】:
-
您是否注册了您的第二屏?不确定您是如何进行导航的,但您可以查看我的其他 answers 之一,了解如何进行导航,也许它会帮助您解决问题。
-
@Lian van der Vyver:是的。我在
App.js注册了我的第二个屏幕,如下:return ( <SecondScreen navigator={navigator} {...route.passProps} />); -
您在注册屏幕上的 ID 是什么?
-
id: 'SecondScreen'这是为第二屏注册的 -
遇到这些错误:
undefined is not an object (evaluating 'this.props.navigator')Unhandled JS Exception: undefined is not an object (evaluating 'this.props.navigator')
标签: javascript ios react-native drawer