Javascript 反应功能部件不';当道具改变时,不要重新渲染

Javascript 反应功能部件不';当道具改变时,不要重新渲染,javascript,reactjs,use-effect,Javascript,Reactjs,Use Effect,我在useEffect中使用axios请求,我传递的道具只是一个简单的id return ( <> <Table striped bordered hover> 返回( 您忘记传递依赖项数组中的propstationData: const [stationData, setStationData] = useState([]); useEffect(() => { console.l

我在useEffect中使用axios请求,我传递的道具只是一个简单的id

    return (
        <>
            <Table striped bordered hover>
返回(

您忘记传递依赖项数组中的prop
stationData

    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挂钩。