React native didFocus没有';从另一个屏幕导航时无法工作

React native didFocus没有';从另一个屏幕导航时无法工作,react-native,react-navigation,React Native,React Navigation,我将“react navigation 3.11.0”与我的react native expo应用程序一起使用,我有以下导航结构 const orderStackNavigator=createStackNavigator( { 订单:{ 屏幕:订单 }, 订单详情:{ 屏幕:OrderDetail }, 订单详情:{ 屏幕:OrderMoreDetails }, 订购说明:{ 屏幕:订单说明 }, 订单计费详细信息:{ 屏幕:OrderBillingDetails }, OrderDelive

我将“react navigation 3.11.0”与我的react native expo应用程序一起使用,我有以下导航结构

const orderStackNavigator=createStackNavigator(
{
订单:{
屏幕:订单
},
订单详情:{
屏幕:OrderDetail
},
订单详情:{
屏幕:OrderMoreDetails
},
订购说明:{
屏幕:订单说明
},
订单计费详细信息:{
屏幕:OrderBillingDetails
},
OrderDelivery详细信息:{
屏幕:OrderDeliveryDetails
}
},
{
//headerMode:“无”
默认导航选项:{
headerStyle:[样式.headerStyle]
}
}
);
const inventoryManagerStackNavigator=createStackNavigator(
{
类别:{
屏幕:类别
},
产品:{
屏幕:产品
},
编辑产品:{
屏幕:EditProduct
}
},
{
//headerMode:“无”
默认导航选项:{
headerStyle:[样式.headerStyle]
}
}
);
const tabNavigator=createBottomTabNavigator(
{
订单:{
屏幕:orderStackNavigator,
},
库存:{
屏幕:inventoryManagerStackNavigator,
},
},
{
订单:[“订单”、“库存”],
animationEnabled:没错,
选项卡选项:{
activeTintColor:#026AC2“,
颜色:“86AAC2”,
标签样式:{fontFamily:“Clearans Regular”}
//iconStyle:{fontFamily:'Clearans Bold'}
}
}
);
const-mainStackNavigator=createStackNavigator(
{
登录:{
屏幕:登录
},
oAuth:{
屏幕:OAuth
},
选项卡:{
屏幕:选项卡导航器
}
},
{
initialRouteName:“登录”,
headerMode:“无”
}
);
const AppContainer=createAppContainer(mainStackNavigator);
导出默认AppContainer;
我面临的问题是,如果我从ordermoredetails导航到editProduct,它将不会向导航添加didFocus侦听器。若我曾经导航到inventory,然后是editProduct,它将按预期工作,即使从ordermoredetails,但若用户转到ordermoredetails并导航到editProduct,它将不工作。下面是我为editProduct添加侦听器的代码

componentDidMount(){
const{navigation}=this.props;
this.focusListener=navigation.addListener(“didFocus”,()=>{
if(this.props.needToReload==true){
//动手
}
});
}
组件将卸载(){
//删除事件侦听器
if(this.focusListener!=null&&this.focusListener.remove)
this.focusListener.remove();
}
任何人都可以告诉我如何修复此问题,并在每次加载组件时调用didFocus吗?

在navigation.addListener中将“didFocus”更改为“focus”。addListener对我有效。

didFocus”对我无效。请尝试“聚焦”。下面是与我一起工作的示例代码。我有版本:“@react-navigation/native”:“^5.7.6

哇。你救了我一天
   componentDidMount() {
        this.focusListener = this.props.navigation.addListener('focus', () => {
          // your logic will go here
        });
      }
      componentWillUnmount() {
        // Remove the event listener
        this.focusListener.remove();
      }