如何将道具传递到反应导航的导航器堆栈中的所有屏幕?

时间:2018-02-02 06:55:12

标签: react-native react-navigation

我有一个导航堆A,B,C,D,我希望传递来自A-> B的道具和来自A,B->的道具。 C和道具来自A,B,C-> D

使用this.props.navigation.navigate(' B',{props:A props})道具只传递给B?

2 个答案:

答案 0 :(得分:1)

this.props.navigation.navigate('B',{ propsA:A props })

this.props.navigation.navigate('C',{ propsA:A props,propsB:B props })

this.props.navigation.navigate('D',{ propsA:A props,propsB:B props,propsC:C props })

你可以将多个道具传递到另一个屏幕。

答案 1 :(得分:0)

我认为你试图以错误的方式捕捉某些东西,可能是因为领域知识较少。

navigation的主要目的是从 screen-A 过渡到 screen-B 。所以这只是一个过渡或移动。因此,您需要一次将数据从 screen-A 传递到 screen-B (无需担心任何其他不在焦点的屏幕)。

然后,如果您想将 screen-B 上收到的数据传递到下一个 screen-C (包括任何新填充的用户数据 - 如果有的话),那么您将自行操作或处理,将所有数据传递给下一个" screen-C"。

这一直在继续。它的一个例子是长形式。如果我们在不同的屏幕上逐步获取用户信息,那么在每个屏幕上我们需要将数据传递到下一个屏幕,然后在我们获取用户进一步信息时在下一个屏幕上,然后我们需要组合bod old + new < / strong>数据并将其传递到下一个屏幕。

现在,将数据传递到下一个/任何屏幕的基本过程是什么

navigation帮助我们实现屏幕转换,并允许将任何数据传递到目标屏幕。在这个非常相似的问题中已经很好地解释了这一点。我在那里详细回答: Access data from other component -React Native