Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/react-native/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs TypeError:destroy不是由async/await引起的useEffect函数_Reactjs_React Native - Fatal编程技术网

Reactjs TypeError:destroy不是由async/await引起的useEffect函数

Reactjs TypeError:destroy不是由async/await引起的useEffect函数,reactjs,react-native,Reactjs,React Native,我的React Native(0.61.5)有一个16.9.0React捆绑包,它不是最新的。在应用程序中useffect返回TypeError的错误:distroy不是函数: 以下是useffect代码: useEffect(async () => { try { let url = `${GLOBAL.BASE_URL}/api/events/active?group_id=${encodeURIComponent(group_id)}&_role=${r

我的React Native
(0.61.5)
有一个
16.9.0
React捆绑包,它不是最新的。在应用程序中
useffect
返回
TypeError的错误:distroy不是函数

以下是
useffect
代码:

useEffect(async () => {
    try {
      let url = `${GLOBAL.BASE_URL}/api/events/active?group_id=${encodeURIComponent(group_id)}&_role=${role}&_grpmember_id=${grpmember_id}&_group_id=${encodeURIComponent(group_id)}&_device_id=${encodeURIComponent(device_id)}`;
      let res =  await fetch(url, {
        method: "GET",
          headers: {
          'Accept': 'application/json, text/plain',
          'Content-Type': 'application/json',   
          "x-auth-token": token.password,
          "x-auth-secret": token.username,
        }
      });
      //check secret token 
      let secret = res.headers.get("x-auth-secret");
      let jwttoken = res.headers.get("x-auth-token");
      res = await res.json();
      if (secret && jwttoken && (typeof secret !== 'undefined') && (typeof jwttoken !== 'undefined') && secret !== null && jwttoken !== null) {
        if(await helper.updateJwtToken(secret, jwttoken)) {
          setToken({password: jwttoken, username: secret});
          authVal.updateToken(token); //set state token in App.js
        };
      } else if (jwttoken === "route to verfi") {
        navigation.navigate("Verif1", {cell: res.cell, cell_country_code: res.cell_country_code, existing_user:true});      
      };
      //update state
      var ordered_data = eventsByDate(res);
      setActiveEvents(ordered_data);

    } catch (err) {
      console.log("Error in event refreshing data ", err);     
    };
  })

根据a,问题很可能是由方法中的几个
async/await
引起的。在我看来,较新版本的
React
可以解决这个问题。我应该升级到什么版本的react?或者有其他解决方法,而不是版本升级

我认为您应该删除async关键字,只需编写
useffect(()=>{…})最好的方法是创建一个单独的函数并使用它:

const doStuff = async () => {...};
useEffect(() => { doStuff(); });

useEffect回调不应返回承诺(不是异步的),请参见此处如何正确编写它