IPS*_*IPS 3 react-native react-navigation
我正在将“react-navigation 3.11.0”与我的react native expo应用程序一起使用,并且我有以下导航结构。
const orderStackNavigator = createStackNavigator(
{
orders: {
screen: Orders
},
orderdetail: {
screen: OrderDetail
},
ordermoredetails: {
screen: OrderMoreDetails
},
ordernotes: {
screen: OrderNotes
},
orderbillingdetails: {
screen: OrderBillingDetails
},
orderdeliverydetails: {
screen: OrderDeliveryDetails
}
},
{
//headerMode: 'none'
defaultNavigationOptions: {
headerStyle: [styles.headerStyle]
}
}
);
const inventoryManagerStackNavigator = createStackNavigator(
{
categories: {
screen: Categories
},
products: {
screen: Products
},
editProduct: {
screen: EditProduct
}
},
{
//headerMode: 'none'
defaultNavigationOptions: {
headerStyle: [styles.headerStyle]
}
}
);
const tabNavigator = createBottomTabNavigator(
{
orders: {
screen: orderStackNavigator,
},
inventory: {
screen: inventoryManagerStackNavigator,
},
},
{
order: ["orders","inventory"],
animationEnabled: true,
tabBarOptions: {
activeTintColor: "#026AC2",
inactiveTintColor: "#86AAC2",
labelStyle: { fontFamily: "ClearSans-Regular" }
//iconStyle: { fontFamily: 'ClearSans-Bold' }
}
}
);
const mainStackNavigator = createStackNavigator(
{
login: {
screen: Login
},
oAuth: {
screen: OAuth
},
tabs: {
screen: tabNavigator
}
},
{
initialRouteName: "login",
headerMode: "none"
}
);
const AppContainer = createAppContainer(mainStackNavigator);
export default AppContainer;
Run Code Online (Sandbox Code Playgroud)
我面临的问题是,如果我从 ordermoredetails 导航到 editProduct,它不会将 didFocus 侦听器添加到导航中。如果我导航到库存,然后编辑产品,即使从 ordermoredetails 中,它也会按预期工作,但如果用户转到 ordermoredetails 并导航到 editProduct ,它就不起作用。下面是我用于添加侦听器的 editProduct 代码。
componentDidMount() {
const { navigation } = this.props;
this.focusListener = navigation.addListener("didFocus", () => {
if (this.props.needToReload == true) {
//do the stuff
}
});
}
componentWillUnmount() {
// Remove the event listener
if (this.focusListener != null && this.focusListener.remove)
this.focusListener.remove();
}
Run Code Online (Sandbox Code Playgroud)
任何人都可以让我知道如何解决此问题并在每次组件加载时进行 didFocus 调用吗?
| 归档时间: |
|
| 查看次数: |
3506 次 |
| 最近记录: |