【问题标题】:can we run arrow function without useEffect()?我们可以在没有 useEffect() 的情况下运行箭头函数吗?
【发布时间】:2021-08-03 02:41:53
【问题描述】:

我在 react native 应用中有一个函数 loadListings(),它从实时 firebase 数据库中获取数据并将其呈现在 <Flatlist /> 的页面上

功能..

    let data = [];
    listingRef.orderByChild("created_at").on("value", (snapshot) => {
      data = [];
      snapshot.forEach((listing) => {
        data.push(listing.val());
      });
      setListings(data);
      setLoading(false);

    });
  };

最后

useEffect(() => {
    loadListings();
  }, []);

可以不用效果挂钩吗?

【问题讨论】:

  • 尝试时会发生什么?
  • 我想检查一下互联网是否可用。如果不可用,则从缓存中加载列表
  • 初始加载页面时,网络状态始终为空,并在几毫秒后变为真。并且效果钩子不会让函数被重新加载
  • 当我在效果钩子之外尝试时,它给出了一个错误,说重新渲染太多

标签: firebase react-native use-effect arrow-functions


【解决方案1】:

是的,你可以。基于official documentation for useEffect hook ,末尾的[]空数组表示挂载该组件时将执行的loadListings函数。

【讨论】:

  • useNetInfo() 钩子每次网络状态变化时返回四个对象。那么每次网络状态发生变化时,我如何使用它来加载列表
  • 如果您分享您的源代码将是完美的,对不起,由于您在问题中描述的内容以及您在评论中写的内容,我仍然不清楚。使用效果(()=> {...},[这里的值])
  • 好吧,试一试。
猜你喜欢
  • 2016-11-14
  • 1970-01-01
  • 2018-07-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-30
相关资源
最近更新 更多