clearInterval () не очищает setInterval и влияет на навигацию - PullRequest
0 голосов
/ 09 апреля 2019

Хорошо, у меня есть экран-заставка, который использует setInterval, но проблема в setInterval, теперь в основном влияет на всю навигацию в моем приложении, я пытался использовать clearInterval, но он не будет работать.

Я пытался изменить значение с componentWillMount на componentDidMount, но оно все равно не работает.

componentDidMount(){
  const splashInterval = setInterval(()=>{
      this.props.navigation.navigate('Main');
    },2000);
    this.setState({splashInterval: splashInterval});
}


componenWillUnmount(){
  const splashInterval = this.state.splashInterval;
  const clearSplashInterval = this.props.navigation.clearInterval(splashInterval);
  this.setState(clearSplashInterval);
}

Ответы [ 2 ]

1 голос
/ 09 апреля 2019

вам не нужно очищать интервал, вы можете просто

  componentDidMount(){
    setTimeout(() => {
this.props.navigation.navigate("Main")
    }, 100);
  }

когда вы переходите в другой класс, вы можете использовать это, и если вы хотите сбросить свой стек, как будто вы не хотите иметь заставку в стеке

  componentDidMount(){
    setTimeout(() => {

const resetAction = StackActions.reset({
  index: 0,
  actions: [NavigationActions.navigate({ routeName: 'main' })],
});
this.props.navigation.dispatch(resetAction);
    }, 100);
  }
0 голосов
/ 09 апреля 2019

Почему вы получаете clearInterval от реквизита ?????

для очистки setInterval

сделать это

componentDidMount(){
 this.inter = setInterval(async() => {
            this.props.navigation.navigate('Main');
        }, 2000);
}

componenWillUnmount(){
  clearInterval(this.inter);
}

Функция clearInterval () очищает интервал, который был установлен функцией setInterval () до этого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...