reactjs - 为什么刷新页面时我的 React useEffect 没有再次加载?
问题描述
我正在使用 useEffect 从 firebase 获取信息,然后设置我的 redux 状态。当我第一次打开页面时,我的所有组件都包含正确的信息。刷新页面后,所有信息都设置为空?我认为这是因为 useEffect 由于某种原因没有再次执行。下面是我的代码:
useEffect(async () => {
setLoading(true);
const fetchData = async () => {
await getConfigs().then((response) => {
const obj = response;
setRedux(obj[0]);
});
};
fetchData();
}, []);
解决方案
我认为问题在于您提供了一个异步函数作为回调useEffect
,这是不允许的。摆脱它,就像这样:
useEffect(() => {
setLoading(true);
const fetchData = async () => {
// Also, you either await or use .then(), not both
const response = await getConfigs();
const obj = response;
setRedux(obj[0]);
};
fetchData();
}, []);
推荐阅读
- javascript - 如何使用momentjs获取特定格式?
- javascript - 类型检查和扩展运算符 (setState)
- javascript - 为什么 Angular 不允许我将参数传递给提供者的 useFactory 中的函数?
- java - 如何解决无法执行语句;SQL [不适用];约束[患者ID];嵌套异常是 org.hibernate.exception.ConstraintViolationException
- sql-server - 许多数据集分为一行和多列计数(T-SQL)
- c++ - 为什么我会从这个字符串到字符转换中获得随机输出?
- excel - 如何在 Excel 功能区按钮的工具提示中添加图像?
- c# - 我已经部署了elk和rabbitmq,但是logstash不能消费来自rabbitmq的消息
- azure-devops - Azure DevOps Server 删除的构建不会释放空间
- sql-server - 如何加入 3 张或更多桌子