我正在尝试按照here所述在react-navigation中设置身份验证流程。我能够在屏幕之间导航,但无法传递道具。
在登录屏幕中,我们按如下方式导航到应用程序:
this.props.navigation.navigate('App', {user: "hello"});
然后在应用程序中,我们尝试访问user
值,如下所示:
const { params } = this.props.navigation.state;
const userId = params ? params.user : null;
打印params
给出以下内容:
{routeName:"Home",key:"id-1524078856706-13"}
我做了一个简单的Snack来证明这个问题。似乎上述方法只适用于StackNavigator?我必须恢复到StackNavigator吗?
答案 0 :(得分:1)
您必须将参数传递给已在应用程序路由器中注册的routeName
,而不是将其传递到应用程序的路由器,如上所述here
params - 要合并到目的地路线的参数
现在您将params
传递给StackRouter **App**
要解决此问题,您只需致电
即可this.props.navigation.navigate('Home', {user: "hello"});