Reactjs 在componentDidmount之前调用ComponentWillUnmount

Reactjs 在componentDidmount之前调用ComponentWillUnmount,reactjs,react-native,Reactjs,React Native,我有一个名为PAGE2的组件,我将从中返回到组件PAGE1。现在,当我使用不同的道具从PAGE1移动到PAGE2时,我看到PAGE2带有旧值(这里不调用包含fetchListValues函数的componentDidMount) 我从第2页到第1页使用 导航。导航(“第1页”) 导航未卸载PAGE2,因此未调用相关函数。请提供您的代码的详细信息-如果他们看不到您所写的内容,没有人可以提供帮助。我尝试将其转到第0页,这就是为什么我使用NavigateBack()转到堆栈中的上一个路由。我认为你应该

我有一个名为PAGE2的组件,我将从中返回到组件PAGE1。现在,当我使用不同的道具从PAGE1移动到PAGE2时,我看到PAGE2带有旧值(这里不调用包含fetchListValues函数的componentDidMount)

我从第2页到第1页使用 导航。导航(“第1页”)


导航未卸载PAGE2,因此未调用相关函数。

请提供您的代码的详细信息-如果他们看不到您所写的内容,没有人可以提供帮助。我尝试将其转到第0页,这就是为什么我使用NavigateBack()转到堆栈中的上一个路由。我认为你应该检查你的屏幕和导航。我想声明componentDidMount并不是每次屏幕更改都调用的。当我第一次使用它时,我也在期待它。您应该注意聚焦和模糊导航事件。
  componentDidMount = () => {
    // in page 2
    this.fetchChats();

    this.backHandler = BackHandler.addEventListener(
      "hardwareBackPress",
      this.handleBackPress
    );
  };

  handleBackPress() {
    console.log('Back pressing', this.props.navigation);
    this.props.navigation.navigate('PAGE1');
    return true;  
  }

   componentWillUnmount() {
    console.log('Hitting component will unmount');
    BackHandler.removeEventListener("hardwareBackPress", 
     this.handleBackPress);
  }
this.props.navigation.navigate('PAGE1');
//instead of this use the one below
this.props.navigation.goBack();