为了账号安全,请及时绑定邮箱和手机立即绑定

我们如何获取/重新渲染 ANT D 列中的异步数据

我们如何获取/重新渲染 ANT D 列中的异步数据

喵喵时光机 2023-09-14 20:38:30
我需要使用列中的文本从 ant d 表列中获取数据并重新渲染结果,但我的代码无法正常工作?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>                   }                </>            )        },    }, 没有显示任何数据
查看完整描述

1 回答

?
缥缈止盈

TA贡献2041条经验 获得超4个赞

您可以考虑将整个列数据存储到组件状态中。然后让异步函数修改该状态,这样当承诺得到解决时,它将更新状态并触发整个列的重新渲染。


问题是您需要手动处理表组件的加载状态,因为稳定版本的 Suspense API 目前不支持数据获取。


它是这样的


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依赖项以防止组件在每次渲染时获取数据。


查看完整回答
反对 回复 2023-09-14
  • 1 回答
  • 0 关注
  • 119 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信