我正在尝试从AsyncStorage检索API_URL,并使其在所有应用程序中均可访问,存储和检索(在设置屏幕中)工作正常,但当我尝试使用useEffect挂钩在App.js中加载数据时,它返回null。重新加载应用程序不工作,但一旦我保存App.js(使用CTRL-S),它就工作正常。请让我知道正确的方法。
import React, { useEffect, useState } from "react";
import AsyncStorage from "@react-native-async-storage/async-storage";
export default function App() {
const [hostState, setHostState] = useState(null);
const getAHostInfoAsync = async () => {
const hostInfo = AsyncStorage.getItem('host').then(
setHostState(hostInfo)
).then(
console.log(hostState)
);
};
useEffect(() => {
getAHostInfoAsync();
}, []);
module.exports = {
host: hostState
};
}
并在另一个文件中使用:
import App from "../../../App";
const API_URL = App.host;
1条答案
按热度按时间xnifntxz1#
我认为您的问题在于使用async/then.而不是async await的方式。我不能100%确定这是您的问题。但是如果我将async/await函数更改为使用async/then,我的IDE会说变量(hostInfo)可能尚未初始化。无论如何,我认为这是比then更好的语法。