gpt4 book ai didi

javascript - 在 React Navigation 中将 Prop 传递给自定义抽屉导航器

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:29:46 24 4
gpt4 key购买 nike

在 react 抽屉导航菜单中。我想显示我的主要组件 'Router' 状态下的用户名 'John Doe' 我如何将它传递给 CustomDrawerContentComponent。

Extra Info: I'm getting this name from AsyncStorage in componentDidMount

这是我的代码

export default class Router extends Component {
constructor(props) {
super(props);
this.state = {
employeeName: "John Doe" //<-----How to pass this name to CustomDrawerContentComponent????
};
}

render() {
return <MyApp />;
}
}

const MyApp = DrawerNavigator(
{
Home: {
screen: Home
},
History: {
screen: History
},
AddDetails: {
screen: AddDetails
}
},
{
initialRouteName: "Home",
drawerPosition: "left",
contentComponent: CustomDrawerContentComponent,
drawerOpenRoute: "DrawerOpen",
drawerCloseRoute: "DrawerClose",
drawerToggleRoute: "DrawerToggle",
contentOptions: {
activeTintColor: "#EF4036"
}
}
);

const CustomDrawerContentComponent = props => (
<Container>
<Header style={styles.drawerHeader}>
<Body style={styles.container}>
<Image
style={styles.drawerImage}
source={{
uri: "http://themes.themewaves.com/nuzi/wp-content/uploads/sites/4/2013/05/Team-Member-3.jpg"
}}
/>
<Text style={styles.drawerText}>**How get the name here?**</Text>
</Body>
</Header>

<Content>
<DrawerItems {...props} />
</Content>
</Container>
);

最佳答案

你可以使用 screenProps:

<MyApp
screenProps={{employeeName: this.state.employeeName}}
/>

然后在您的自定义 contentComponent 中使用它:

contentComponent:(props)=>(
<View>
<Text>{props.screenProps.employeeName}</Text>
<DrawerItems {...props} />
</View>
)

这是您问题的答案。但首先,我不建议将您的顶级组件用于此类业务逻辑。仅将其用于导航。

在这里查看我的答案:Customizing Drawer

我建议您按照我在回答中的描述创建一个连接 Redux 的自定义抽屉。如果你不知道如何使用 Redux,我绝对建议你学习它。随着应用程序的增长,您将需要它。

关于javascript - 在 React Navigation 中将 Prop 传递给自定义抽屉导航器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51580797/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com