如何避免在 React Native 中使用 FlatList 重新渲染?

问题描述 投票:0回答:1

第一次查看屏幕时,我最初在 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)
    }
javascript react-native react-hooks react-native-flatlist
1个回答
0
投票

我认为您似乎已将状态数据添加为 useEffect 挂钩中的依赖项,因此当您在第一次渲染时调用异步函数,然后在异步函数中 setData 时,它将再次调用 useEffect 并渲染再次。删除useEffect钩子中的word数据,它只会渲染一次。

© www.soinside.com 2019 - 2024. All rights reserved.