Обновите переменную после перехода от A к B к C назад к B - PullRequest
0 голосов
/ 03 апреля 2020

Я экспериментирую с 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 без необходимости повторного выполнения вручную?

Также возможно, что я решил это неправильно, и тогда я хотел бы услышать хорошую альтернативу!

...