如何在 react-native 中单击导航抽屉的右键单击打开下一个屏幕?
How to open next screen on Right Button click of navigation drawer in react-native?
我想在 react-native.
中右键单击导航抽屉打开新屏幕
在登录 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',
});
出现这些错误:
Undefined is not an object (evaluating 'this.props.navigator')
Unhandled JS Exception: undefined is not an object (evaluating
'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];
}
您可以简单地更改导航器中的 this.onPress
方法,如下所示,并删除包含 rightPress
:
的行
Login.js
this.props.navigator.push({
id: 'FirstScreen',
title: 'First Screen',
iconRight: 'map',
rightText: 'list',
passProps: {
api_token: this.state.login_token
}
});
onPress: () => {
this.props.navigator.push({
id: "SecondScreen",
title: 'Second Screen',
iconRight: 'map',
passProps: {
api_token: this.state.login_token,
username: this.state.username
},
});
}
});
我想在 react-native.
中右键单击导航抽屉打开新屏幕
在登录 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',
});
出现这些错误:
Undefined is not an object (evaluating 'this.props.navigator')
Unhandled JS Exception: undefined is not an object (evaluating '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];
}
您可以简单地更改导航器中的 this.onPress
方法,如下所示,并删除包含 rightPress
:
Login.js
this.props.navigator.push({
id: 'FirstScreen',
title: 'First Screen',
iconRight: 'map',
rightText: 'list',
passProps: {
api_token: this.state.login_token
}
});
onPress: () => {
this.props.navigator.push({
id: "SecondScreen",
title: 'Second Screen',
iconRight: 'map',
passProps: {
api_token: this.state.login_token,
username: this.state.username
},
});
}
});