Возможно, кто-то может помочь мне с проблемой React Native, с которой у меня react-navigation
(2.0.4).У меня есть страница (страница C - RouteShowScreen), которую я хочу условно перезагрузить, в зависимости от того, была ли она перемещена со страницы A (RoutePrepareScreen) или страницы X (любая другая страница, переходящая на страницу C), и я просто не могупохоже, правильные методы жизненного цикла.Чтобы было понятно, я хочу, чтобы страница перезагружалась, если к ней переходили со страницы A (RoutePrepareScreen), но не при переходе к ней с какого-либо другого экрана.Я попытался использовать прослушиватель willFocus
, но затем страница C перезагружается независимо от того, была ли на нем навигация со страницы A или страницы B.
RoutePrepareScreen
...
this.props.navigation.navigate("RouteShow", {
currentLat: latitude,
currentLng: longitude,
destinationAddress: this.state.destinationAddress,
currentAddress: this.formatCurrentAddress(),
destinationLat,
destinationLng,
speed,
hoursUntilBreak,
estimatedShiftLength});
}
...
RouteShowScreen
/** This caused the page to reload, regardless of how it was navigated to **/
willFocus = this.props.navigation.addListener(
'willFocus',
() => {
this.handleRouteLoad();
}
);
/** I also tried using componentWillReceiveProps and adding an additional "reload" navigation parameter, but this threw the
app into an infinite loop **/
componentWillReceiveProps(nextProps) {
if (nextProps.navigation.state.params.reload) {
this.handleRouteLoad();
}
}