将props从contentComponent传递到另一个屏幕显示为未定义的screenprops

时间:2018-12-10 15:41:10

标签: react-native react-navigation

我遇到一个问题,当我按下应用程序侧边栏内的按钮时,它会转到另一个屏幕,但是我所传递的参数却没有随行。

所以我的设置是:

使用反应导航:

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:未定义。

如何将参数从侧边栏传递到其他屏幕?当从其他堆栈(“主页”,“登录名”等)中执行此操作时,它将起作用。

我希望这很清楚。

请帮助。

0 个答案:

没有答案