从 AsyncStorage 获取变量并放入 Axios



我一直在尝试从AsyncStorage获取一个变量,然后将其放入Axios get请求中。问题是变量没有更新到从 AsyncStorage 检索的数据。我该如何让它做到这一点?

这是我的代码:

const [sku, setSku] = useState('')
const STORAGE_KEY_SKU = '@save_sku'
const readSku = async () => {
try {
const selectedSku = await AsyncStorage.getItem(STORAGE_KEY_SKU)
if (selectedSku !== null) {
setSku(selectedSku)
}
} catch (e) {
alert('Failed to fetch the data from storage')
}
}
useEffect(() => {
readSku()
}, []);
useEffect(() => {
Axios.get(`https://api.vexdb.io/v1/get_matches?sku=${sku}`)
.then(({ data }) => {
//console.log("defaultApp -> data", data)
setData(data.result)
})
.catch((error) => console.error(error))
.finally(() => setLoading(false));
}, []);

我试图从 AsyncStorage 的状态中获取 sku 变量,但 axios get 请求链接中的 ${sku} 不起作用,该语句中的 sku 为空。

请帮忙,谢谢!

useFocusEffect(() => {   
readSku()
}, []);

const STORAGE_KEY_SKU = '@save_sku'
// to get the session username from localstorage
const readSku = async () => {
try {
const selectedSku = await AsyncStorage.getItem(STORAGE_KEY_SKU)
if (selectedSku !== null) {
setSku(selectedSku)
}
} catch (e) {
console.log(e);
}
}
const setSku = async (selectedSku) => {
Axios.get(`https://api.vexdb.io/v1/get_matches?sku=${selectedSku}`)
.then(({ data }) => {
//console.log("defaultApp -> data", data)
setData(data.result)
})
.catch((error) => console.error(error))
.finally(() => setLoading(false));
}

最新更新