Это то, что делает стековый навигатор, он хочет снова загрузить весь экран.
Он просто хранит все для вас, так что когда вы вернетесь назад, все будет там, в каком бы состоянии вы не покинули экран.
Например, вы прокрутили до половины на определенном экране и перешли на другой экран, теперь вы вернулись, и вы увидите, что ваш экран наполовину прокручен там, где вы оставили.
, поэтому он ничего не сделает, когда вы вернетесь.
Примечание: Если экран перемещается в прошлом и существует в текущем стеке, то повторный переход к экрану не вызовет никаких методов жизненного цикла.
Так что для вашего случая,
Вы можете передать ссылку на метод в параметрах навигации.и вызовите его, прежде чем переходить.
вот так,
, скажем, вы находитесь на экране B и хотите вызвать метод methodSuperCool=()=>{...}
, который находится в screenA
, с которого вы перешли на текущий экран.
для этого вам нужно будет передать ссылку на метод в параметрах при переходе к screenB с экрана A.
this.props.navigation.navigate('screenB',{methodSuperCool:this.methodSuperCool});
//this to be write in screenA
теперь на экране B, прежде чем навигация к экрану A вызовет это,
this.props.navigation.state.params.methodSuperCool() // this can also have params if you like to pass
this.props.navigation.navigate('screenA') // or goBack() method will also work