如何避免在react native中使用flatlist重新渲染?

mmvthczy  于 2023-05-18  发布在  React
关注(0)|答案(1)|浏览(268)

我最初在第一次查看屏幕时调用useEffect中的API响应,但API请求一直在运行,我猜是因为我已经达到了发送请求的限制。(我对这项技术很陌生)。
我使用Flatlist来显示项目,我的目标是只在数据更新时渲染。
先谢谢你了。

useEffect(() => {
         getCategory();
    }, [data])
const getCategory = async () => {
        setLoading(true)
        await fetch(`URL`,
            {
                headers: {
                    'x-api-key': 'API_KEY'
                }
            })
            .then((res) => res.json())
            .then(resJson => {
                setData(resJson)
            }).catch(e => { console.log(e, 'ERROR') })
        setLoading(false)
    }
hjzp0vay

hjzp0vay1#

我认为看起来你已经在useEffect钩子中添加了你的状态数据作为依赖项,所以当你的async函数在第一次渲染时被调用,然后你在async函数中设置数据,它将再次调用useEffect,它将再次渲染。删除useEffect钩子中的单词data,它将只呈现一次。

相关问题