React Native async函数返回空对象,SecureStore读取的token无法传递到API请求
问题根源
readToken 是异步函数,直接调用时返回的是Promise实例而非真实的token值,你在拼接URL时没有添加await等待异步执行完成,导致URL中拼接的是Promise对象转字符串后的结果,无法正确传递token。
修复代码
修改getMovies函数,调用readToken前添加await关键字获取真实token值:
const getMovies = async () => { try { // 等待异步函数返回真实token const token = await readToken(); let url = 'https://someurl.de/api/getschichten/?userid=9&token=' + token; alert(url); const response = await fetch(url); const json = await response.json(); setData(json); } catch (error) { console.error(error); } finally { setLoading(false); } }
优化建议
可以添加token有效性校验逻辑,避免空值传入导致的请求异常:
const token = await readToken(); // 校验token是否存在 if (!token) { console.error('未获取到有效身份凭证,请重新登录'); setLoading(false); return; }
内容的提问来源于stack exchange,提问作者Ankit Vij
相关产品推荐
相关产品推荐

