Reactjs TypeError:destroy不是由async/await引起的useEffect函数
我的React NativeReactjs 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
(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回调不应返回承诺(不是异步的),请参见此处如何正确编写它