Javascript 反应功能部件不';当道具改变时,不要重新渲染
我在useEffect中使用axios请求,我传递的道具只是一个简单的idJavascript 反应功能部件不';当道具改变时,不要重新渲染,javascript,reactjs,use-effect,Javascript,Reactjs,Use Effect,我在useEffect中使用axios请求,我传递的道具只是一个简单的id return ( <> <Table striped bordered hover> 返回( 您忘记传递依赖项数组中的propstationData: const [stationData, setStationData] = useState([]); useEffect(() => { console.l
return (
<>
<Table striped bordered hover>
返回(
您忘记传递依赖项数组中的propstationData
:
const [stationData, setStationData] = useState([]);
useEffect(() => {
console.log(`Fetching station ${stationId}`)
axios.get(`http://localhost:3001/stations/${stationId}`)
.then(response => {
console.log(response);
setStationData(response.data);
})
.catch(error => {
console.log(error);
});
}, [stationData]); <--- HERE
return (
<>
<Table striped bordered hover>
const[stationData,setStationData]=useState([]);
useffect(()=>{
log(`Fetching station${stationId}`)
axios.get(`http://localhost:3001/stations/${stationId}`)
。然后(响应=>{
控制台日志(响应);
setStationData(响应数据);
})
.catch(错误=>{
console.log(错误);
});
},[stationData]);应将stationId作为useEffect:}[stationId]的依赖项传递代码>它可以工作,但我收到无限多的请求,这是为什么?useEffect类似于componentDidMount,每次在装载阶段之后,都会根据指定的依赖项调用该函数。对于您的错误,可能是您的状态变量被多次更新,从而触发useEffect挂钩。