Прервать предыдущий запущенный асинхронный componentDidMount

См. выражение

plot(1:10,main=expression("This is a subscript "[2]))

enter image description here [/g0]

1
задан Emi 18 March 2019 в 00:31
поделиться

1 ответ

Хорошим решением является использование AbortController или библиотеки, подобной axios, которая поддерживает отменяемые запросы, но вы также можете оставить переменную экземпляра, которую вы изменили на false, когда компонент размонтируется, и проверить его перед использованием. setState после того, как запросы завершены.

Пример

class App extends React.Component {
  _isMounted = true;

  async componentDidMount() {
    const page = await fetchPage(this.props.page);
    const section = await fetchSection(this.props.section);

    if (this._isMounted) {
      this.setState({ page, section });
    }
  }

  componentWillUnmount() {
    this._isMounted = false;
  }

  render() {
    // ...
  }
}
0
ответ дан Tholle 18 March 2019 в 00:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: