Javascript 如何解决react native中的内存泄漏?

Javascript 如何解决react native中的内存泄漏?,javascript,reactjs,react-native,axios,fetch,Javascript,Reactjs,React Native,Axios,Fetch,我有一个将寄存器数据发送到端点的函数 所以我在用户按下注册按钮时进行加载 但是这个加载不再出现了 我得到了一个警告 无法对未安装的组件执行React状态更新。这是 无操作,但表示应用程序内存泄漏。要解决, 取消useEffect清理中的所有订阅和异步任务 功能 我尝试了两种不同的方式来设置“加载” 1) 在函数的第一行设置状态加载,然后调用API this.setState({loading:true}); API.post(....); 2) 设置state加载时,使API调用int回调函数

我有一个将寄存器数据发送到端点的函数

所以我在用户按下注册按钮时进行加载

但是这个加载不再出现了

我得到了一个警告

无法对未安装的组件执行React状态更新。这是 无操作,但表示应用程序内存泄漏。要解决, 取消useEffect清理中的所有订阅和异步任务 功能

我尝试了两种不同的方式来设置“加载”

1) 在函数的第一行设置状态加载,然后调用API

this.setState({loading:true});
API.post(....);
2) 设置state加载时,使API调用int回调函数,如下面的代码段所示

但没有人工作:\

但遗憾的是,这并不奏效

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}));
    });
  };
调用注册()

{
这个。注册(价值观);
actions.resetForm();
}}>
....

这是否回答了您的问题@丽塔:不!假设您使用的是类,我不会在这个屏幕中使用componentDidMount()。你把你的
数据
函数绑定到你的类了吗?@NickRameau对不起,我不能很好地理解你,你能解释更多吗?我很高兴你能理解。
 <Formik
              validationSchema={formSchema}
              initialValues={initialValues}
              onSubmit={(values, actions) => {
                this.signUp(values);
                actions.resetForm();
              }}>
....
</Formik>