Как решить утечку памяти в реагировать родной? - PullRequest
0 голосов
/ 18 февраля 2020

У меня есть функция, которая отправляет данные регистра в конечную точку

Поэтому я делаю загрузку, когда пользователь нажимает кнопку регистрации,

, но эта загрузка больше не появляется!

и я получил предупреждение

Невозможно выполнить обновление состояния React для неустановленного компонента. Это неоперация, но она указывает на утечку памяти в вашем приложении. Чтобы исправить, отмените все подписки и асинхронные задачи в функции очистки useEffect.

Я пытаюсь использовать другой способ setState 'loading'

1) установить состояние загрузки в первой строке Затем моя функция вызывает мой API.

this.setState({loading:true});
API.post(....);

2) заставляет API вызывать функцию обратного вызова при загрузке setState, как в фрагменте кода ниже

, но никто не работает: \

но, к сожалению, не работает

signUp = data => {
    this.setState({loading: true}, () => {
      API.post('/register', data)
        .then(async response => {
          let {
            data: {
              data: {
                response: {token},
              },
            },
          } = response;
          console.log(token);
          this.props.dispatch(isLoginFunc(true));
          await saveToken('id_token', token);
          this.setState({loading: false}, () =>
            this.props.navigation.navigate('TabHome'),
          );
        })
        .catch(this.setState({loading: false}));
    });
  };

Calling SignUp ()

 <Formik
              validationSchema={formSchema}
              initialValues={initialValues}
              onSubmit={(values, actions) => {
                this.signUp(values);
                actions.resetForm();
              }}>
....
</Formik>
...