console.log(res) 在控制台里可以正常看到数据。
显示出的结果[{"name":"电抗器","spec":"辅导","unit":"地方","unitprice":12,"price":120,"proID":500001,"number":10,"key":1}]。
但是tableData里面仍然是空数组没有更新数据是为什么?
const [tableData, setTableData] = useState<[]>([]);
useEffect(() => {
getproducts(location.query.orderID).then(res=> {
setTableData(res)
console.log(res)
console.log(tableData) // 这里获取不到数据
})
}, []);
console.log(tableData) // 这里可以获取到数据
return (
console.log(tableData)
//这里也获取不到tableData 的数据 这里控制台显示的是空数组
)
因为这是个异步操作你立即去console.log还没完成set的动作
你用useEffect去监听tableData做些什么事情就可以了