【发布时间】:2021-03-11 12:18:19
【问题描述】:
我有一小段代码,我想我做错了
const [orders, setOrders] = useState([])
useEffect(() => {
fetch('/getOrders',{
headers:{
"Content-Type":"application/json",
"Authorization": "Bearer "+localStorage.getItem("jwt")
}
}).then(res=>res.json())
.then(orderList=>{
setOrders(orderList)
//console.log("myAdmin",orderList)
}).catch(err=>{
console.log("Error in Catch",err)
})
}, [orders])
这里数据会自行超时更新,我希望每次获取数据与现有状态不同时更新我的状态,但无论数据是否不同,状态都会不断更新,使组件无限重新渲染.有解决办法吗?
【问题讨论】:
-
我不明白
orders是如何依赖的,但基本上任何时候效果都会无条件地更新其依赖数组中的值,它会导致渲染循环。所以基本上你想在每次渲染时获取数据,并且只有当它不同时才更新本地状态? -
@DrewReese 是的,这就是我想要做的。
标签: reactjs mongodb react-hooks fetch-api mern