喵喵時光機(jī)
2023-09-14 20:38:30
我需要使用列中的文本從 ant d 表列中獲取數(shù)據(jù)并重新渲染結(jié)果,但我的代碼無法正常工作?const columns = [ { title: "Stocks On Hand", dataIndex: "key", width: "33.333333333%", render: async function render(text) { //console.log(warehouse) const data = await dispatch(getStocksDetails(text,warehouse)) // console.log(data) return ( <> { <Text>{data.qty}</Text> } </> ) }, }, 沒有顯示任何數(shù)據(jù)
1 回答

縹緲止盈
TA貢獻(xiàn)2041條經(jīng)驗 獲得超4個贊
您可以考慮將整個列數(shù)據(jù)存儲到組件狀態(tài)中。然后讓異步函數(shù)修改該狀態(tài),這樣當(dāng)承諾得到解決時,它將更新狀態(tài)并觸發(fā)整個列的重新渲染。
問題是您需要手動處理表組件的加載狀態(tài),因為穩(wěn)定版本的 Suspense API 目前不支持?jǐn)?shù)據(jù)獲取。
它是這樣的
const MyComponent = () => {
const [data, setData] = useState([]);
const asyncFn = async () => {
// do your data fetching here
await fetchDataStuff().then((response)=>setData(response));
}
useEffect(()=> {
asyncFn();
}, [asyncFn]);
return (<column>{data}</column>);
}
編輯:我添加了useEffect依賴項以防止組件在每次渲染時獲取數(shù)據(jù)。
添加回答
舉報
0/150
提交
取消