reactjs 为什么fetch函数中的setState(data)不起作用,除非我更新页面

u7up0aaq  于 2022-12-12  发布在  React
关注(0)|答案(1)|浏览(114)

你好,我有一个列表,当我点击其中一个时,我想呈现细节页面。所以在列表中,我添加了指向“/:id”的链接,这是细节组件上的代码:
`

const [cavallo, setCavallo] = useState({})

 const {idCavallo} = useParams()

let getCavallo = async () => {
    try {
        let response = await fetch(`http://localhost:5001/cavalli/${idCavallo}`)
        if(response.ok) {
            let data = await response.json();
             setCavallo(data)
             console.log(cavallo)
       
        } else {
            console.log("something went wrong")
        }
       
    } catch (error) {
        console.log(error)
    }
}

     useEffect(() => {
   
    getCavallo()
    console.log(cavallo)
     }, []);

`
setCavallo(data)之后的console.log(cavallo)显示了一个空对象,但如果我更改了文件中的某些内容并再次保存,它会显示属性对象并呈现页面。我知道这与挂载有关,但我不知道问题出在哪里

2izufjch

2izufjch1#

setState将在下一次渲染时更新状态,修改如下:

useEffect(() => {
    getCavallo()
}, []);

useEffect(() => {
    console.log(cavallo)
}, [cavallo]);

相关问题