我使用Apollo查询组件。当数据从解析器返回时,我将其存储在组件状态下,例如:
if (loading) {
return (<></>);
} else {
setMyData(data.myData);
}
但是,由于setMyData
导致刷新,因此查询组件会重新运行查询。
在不重新运行查询的情况下将数据存储到React组件状态的最佳做法是什么?
答案 0 :(得分:1)
理想情况下,因为查询结果已处于(全局)状态,所以您根本不应该这样做。但是,您可以:
skip: myData
参数传递给查询,以防止在状态已设置的情况下运行。useEffect
在挂载上运行代码,然后使用client.query
触发查询并设置Promise返回的状态解析时的状态。