我的app root组件如下所示:
export default class App extends React.Component {
render() {
<RootTabs doThings={this.doThings} />
}
}
RootTabs
组件由createBottomTabNavigator从react-navigation创建:
const RootTabs = createBottomTabNavigator({
Movies: {
screen: Movies
},
Actors: ... // etc
})
我的问题是,我想从根组件(App
)向Movies
组件传输数据(如果可能的话,作为道具),但是Movies
没有收到doThings
道具。
如何通过qazxswpoi向儿童传递道具?
如果那是不可能的,那么当一个子组件被一个BottomTabNavigator
分隔时,子组件在根组件上调用方法的最简单方法是什么?
尝试使用screenProps
screenProps记录在这个BottomTabNavigator
上
答案来自page
最小的例子是
here
HomeScreen和ProfileScreen是定义为AppNavigator屏幕的组件。在上面的示例中,我将用户数据从顶级根组件MyApp传递到HomeScreen和ProfileScreen。
由于MyApp和屏幕组件之间有一个AppNavigator,我们需要将用户传递给AppNavigator的screenProps prop,以便AppNavigator将其传递给屏幕。除screenProps之外的任何其他道具都不会传递下去。
MyApp < - 这里的用户数据。