[英]react-native navigation params drawerNavigator
我有一個tabNavigator嵌套在抽屜導航父中。 在抽屜導航器中有一個自定義內容屏幕,它是收藏夾列表。
我想要達到的目的是,當觸發抽屜時,打開重載中的收藏夾列表。
我正在將導航器參數從抽屜導航器傳遞到tabNavigator,但是當我嘗試從tabNavigator傳遞到抽屜導航器時,它是未定義的。
如何將導航參數從LaunchScreen傳遞到DrawerScreen?
export const PrimaryNav = TabNavigator({
Home: {
screen: LaunchScreen,
navigationOptions: {
swipeEnabled: false,
tabBarIcon: ({ tintColor }) => (
<Image
style={[styles.icon]}
source={require('../Images/img.png')}
/>
),
},
},
Map: {
screen: FirstScreen,
navigationOptions: {
tabBarIcon: ({ tintColor }) => (
<Image
source={require('../Images/img1.png')}
style={[styles.icon]}
/>
),
},
},
},
{
headerMode: 'none',
tabBarPosition: 'top',
animationEnabled: true,
tabBarOptions: {
showIcon: true,
showLabel: false,
activeTintColor: '#ffffff',
indicatorStyle: {
borderBottomColor: '#33b2f4',
borderBottomWidth: 3,
},
style: {
backgroundColor: '#000',
paddingTop:20,
}
},
});
const MyDrawerNavigator = DrawerNavigator({
Home: {
screen: PrimaryNav
},
}, {
contentComponent: DrawerScreen
});
export default MyDrawerNavigator
好的,這是我解決問題的方法:
我連接了mobx並實現了一個簡單的商店:
import {observable, action} from 'mobx'
class Store {
@observable refresh = 'false';
@action changeRefresh(value) {
this.refresh = value;
}
}
export default new Store;
然后,我在根容器中測試了繪制狀態(打開/關閉):
class RootContainer extends Component {
handleNavigationState = (previous, next, action) => {
if (action.routeName === 'DrawerOpen') {
this.props.store.changeRefresh('true')
} else if (action.routeName === 'DrawerClose') {
this.props.store.changeRefresh('false')
}
}
render () {
return (
<View style={styles.applicationView}>
<StatusBar barStyle='light-content' />
<AppNavigation onNavigationStateChange={this.handleNavigationState} />
</View>
)
}
}
然后在我的抽屜屏幕中檢查商店道具並重新加載我最喜歡的列表:
render () {
this.props.store.refresh==='true' ? (this.loadFavs()) : (null)
...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.