Я экспериментирую с React native и пытаюсь добиться чего-то, что не работает, и, возможно, кто-то может мне это объяснить.
Например: у меня есть Экран A с кнопкой, когда я нажимаю I go на экране B, на нем появляется кнопка, и он продолжает отображать C и с C обратно на B, это все равно oop, например, 10x.
На экране BI имеет следующую функцию:
componentWillMount(){
this.gameStarted =this.props.navigation.getParam('gamestart');
console.log("is hte game started?:"+this.gameStarted);
if(this.gameStarted == false){
this.routeNumber = this.props.navigation.getParam('routeNumber');
this.routeName = this.props.navigation.getParam('Routename');
console.log("routenummer:"+this.routeNumber);
this.getRouteData();
}else{
Geolocation.getCurrentPosition(position => {
this.setState({
latitude: position.coords.latitude,
longitude: position.coords.longitude,
error: null,
});
},
error => this.setState({error: error.message})
);
this.deslatitude = this.props.navigation.getParam('desLat');
this.deslongitude = this.props.navigation.getParam('desLong');
this.gamenav=this.props.navigation.getParam('gamenav');
console.log("lat New:" + this.latitude);
console.log("long New:" + this.longitude);
this.setState({
desLat: this.deslatitude ,
desLong: this.deslongitude,
gamenav:this.props.navigation.getParam('gamenav'),
});
}
}
this.gameStarted по умолчанию «false», когда я перехожу с экрана A на BI и также передаю это значение. Функция будет работать правильно. Когда я перехожу от B к C, все идет хорошо, Когда я перехожу от C к BI, присваиваю gameStarted значение true. Это значение не принимается, если я не выполню ручную визуализацию, тогда код, кажется, работает как ожидалось. Это, конечно, то, что не может быть сделано позже. Есть ли способ убедиться, что если я перейду с экрана A на BI, получу оператор if == false и если я перейду с C на BI, увидим оператор else без необходимости повторного выполнения вручную?
Также возможно, что я решил это неправильно, и тогда я хотел бы услышать хорошую альтернативу!