【发布时间】:2021-06-25 20:42:50
【问题描述】:
我有一个 async function 和一个 useEffect 可以获取一次数据。
const [data, setData] = useState([]);
async function fetchData() {
fetch(`${baseURL}api/v1/data/${userId}`)
.then((response) => response.json())
.then((response) => {
try {
if (response.length > 0) {
setData(response);
} else {
setData([]);
// console.log(response);
}
} catch (err) {
console.log('no response');
alert(err);
}
});
}
useEffect(() => {
fetchData();
}, [userId, data]);
我可以删除使用效果的数组,但如果我这样做,它将始终运行该函数。 所以当我打开屏幕时,它会获取最新的数据。但是,如果我想从不同的屏幕添加新数据,它不会触发 async 也不会触发 useEffect 函数。我应该如何告诉 RN 有新数据? AsyncStorage 会工作吗?从一个屏幕更新数据并在此处应用数据?我愿意接受有关如何进行的建议。
我所说的不同屏幕是指:注册屏幕和查看屏幕。在这种情况下,我在打开注册屏幕之前已经打开了视图屏幕,因此视图屏幕已经呈现。
【问题讨论】:
-
你使用哪个导航库?
-
对不起。我也是 RN 的新手,所以我只能提供一个解释。我的意思是,例如,注册屏幕和查看屏幕。
-
@Erinç, react-navigation/native
标签: react-native