我遇到一个问题,当我按下应用程序侧边栏内的按钮时,它会转到另一个屏幕,但是我所传递的参数却没有随行。
所以我的设置是:
使用反应导航:
app.navigator.js中的部分代码:
const MainStack = createStackNavigator(
{
Home: {screen: HomeStack},
Login: {screen: LoginStack},
Forgot: {screen: ForgotStack},
Agenda: {screen: AgendaStack},
Info: {screen: InfoStack},
Register: {screen: RegisterStack},
Settings: {screen: SettingsStack},
Contact: {screen: ContactStack},
Account: {screen: AccountStack},
Announcements: {screen: AnnouncementsStack},
},
RouteConfig
);
const AppNavigator = createDrawerNavigator(
{
Main: {
screen: MainStack,
},
WebDetail: {
screen: WebDetailStack
},
},
{
contentComponent: props => <SideScreen {...props}/>,
},
)
我要在contentComponent
上单击按钮,并显示WebDetail
屏幕。在侧面屏幕上,按钮后面有以下代码:
shownWeb(url) {
const { navigation } = this.props;
const navigateAction = NavigationActions.navigate({
routeName: 'WebDetail',
params: {sourceHtml: url}
});
navigation.closeDrawer();
navigation.dispatch(navigateAction);
};
在另一个屏幕上,在console.log(this.props)中,我看到screenprops:未定义。
如何将参数从侧边栏传递到其他屏幕?当从其他堆栈(“主页”,“登录名”等)中执行此操作时,它将起作用。
我希望这很清楚。
请帮助。