react-native - 如何将道具发送到自定义 TabBar?
问题描述
我刚刚创建了一个自定义的 BottomTabBar,并且我有一些共享组件,我想在组件处于活动状态时隐藏标签栏。
我的问题是如何将组件状态发送到标签栏?
这是我的导航器
export default (LoggedInTabNavigator = createBottomTabNavigator(
{
Explore: {
screen: Explore,
navigationOptions: {
tabBarIcon: CustomTabBarIcon("layers", 32)
}
},
SavedTab: {
screen: SavedTab,
navigationOptions: {
tabBarIcon: CustomTabBarIcon("heart", 32)
}
},
AddPost: {
screen: AddPost,
navigationOptions: {
tabBarIcon: CustomTabBarIcon("plus", 32)
}
},
Chat: {
screen: Chat,
navigationOptions: {
tabBarIcon: CustomTabBarIcon("email", 32)
}
},
More: {
screen: More,
navigationOptions: {
tabBarIcon: CustomTabBarIcon("dots-horizontal", 32)
}
}
},
{
tabBarComponent: props => <BottomTabBar {...props} />
},
{
tabBarOptions: {
labelStyle: {
marginBottom: 5
},
activeTintColor: colors.white,
showLabel: false,
style: {
backgroundColor: colors.dark
}
},
tabBarPosition: "bottom"
}
));
现在我想将组件状态发送isVisible
到tabBarComponent
类似
onPress={() =>
this.setState({
isVisible: true
})
}
我知道我可以将道具发送到屏幕上,this.props.navigation.navigate('Screen', {isVisible})
但这只有在我转到另一个页面时才有效
解决方案
使用 ScreenProps 怎么样?
import LoggedInTabNavigator from './LoggedInTabNavigator';
<LoggedInTabNavigator screenProps={{ isVisible: this.state.isVisible}} />
然后你可以从
this.props.screenProps.isVisible
推荐阅读
- r - R: set.seed 去除种子后产生相同的结果
- python - Putting the scrolling camera in a mini-window in pygame
- html - Place a Carousel just below the navbar bootstrap-4 Beta
- javascript - 如何过滤dojo分类treeGrid?
- rest - 在 webhook 中处理巨大的有效负载大小的正确方法是什么?
- mysql - MySQL Group By 多连接
- javascript - 使用 cryptojs 加密 Arraybuffer
- linux - docker内的Linux“脚本”命令未按预期写入文件
- php - 由于 laravel 中的不活动问题,该页面已过期
- windows-template-studio - 添加空白页和菜单项