React native 将屏幕道具传递给选项卡导航器

React native 将屏幕道具传递给选项卡导航器,react-native,React Native,背景 我有一个根组件,它控制两个组件的视图。我有条件地呈现这些组件 我将向这两个组件传递屏幕道具,以便从根组件公开一个函数 当渲染组件1时,它会完美地使用屏幕道具。但是组件2实际上是由tabNavigator控制的。因此,当它被加载时,它是tabNavigator中的默认组件,最终成为Login 我想将屏幕道具向下传递到多个组件,或者换句话说,在登录组件中从root访问函数,这是一个通过TabNavigator加载的组件 范例 从PublicComponent中单击选项卡时加载的LoginCom

背景

我有一个根组件,它控制两个组件的视图。我有条件地呈现这些组件

我将向这两个组件传递屏幕道具,以便从根组件公开一个函数

当渲染组件1时,它会完美地使用屏幕道具。但是组件2实际上是由tabNavigator控制的。因此,当它被加载时,它是tabNavigator中的默认组件,最终成为Login

我想将屏幕道具向下传递到多个组件,或者换句话说,在登录组件中从root访问函数,这是一个通过TabNavigator加载的组件

范例

从PublicComponent中单击选项卡时加载的LoginComponent

}

所以总的来看,

主要成分

这抛出了错误

无法读取未定义的属性登录名


这个错误实际上是正确的。在登录组件中,screenProps没有登录属性,因为您在公共组件中传递了Login属性的值

您可以像下面这样更改公共组件

<BottomTabNav screenProps={{ login: props.screenProps.login}} />
this.props.screenProps();

这个错误实际上是正确的。在登录组件中,screenProps没有登录属性,因为您在公共组件中传递了Login属性的值

您可以像下面这样更改公共组件

<BottomTabNav screenProps={{ login: props.screenProps.login}} />
this.props.screenProps();

这两者都不起作用。我读过一些地方,人们无法像这样传递屏幕道具2组件。你确定这样行吗?我现在想知道这是否在一天结束时不起作用。你的错误与没有使用正确的属性有关。如果你不工作,我可能会帮忙。如果您仍然有任何错误,请使用您尝试的最新版本和新的错误消息更新您的问题。这两个错误都不起作用。我读过一些地方,人们无法像这样传递屏幕道具2组件。你确定这样行吗?我现在想知道这是否在一天结束时不起作用。你的错误与没有使用正确的属性有关。如果你不工作,我可能会帮忙。如果您仍然有任何错误,请使用您尝试的最新版本和新的错误消息更新您的问题
<BottomTabNav screenProps={props.screenProps.login} />
this.props.screenProps.login();
<BottomTabNav screenProps={{ login: props.screenProps.login}} />
this.props.screenProps();