javascript - ant.design 表未更新
问题描述
尝试使用此组件https://ant.design/components/table/
我在这里整理了一个简单的例子 https://codesandbox.io/s/loving-hopper-wly0x
当我单击“重新加载”操作时,我希望看到一个微调器而不是一个链接,但我只看到console.log
正在打印。
实际上,它比我在本地使用 Mobx 作为数据层更糟糕 - 我必须将光标从行上移开或移回才能看到更改。在代码沙箱上,我根本看不到更改。
解决方案
您正在改变data
,这不会强制您的 Table 重新渲染。如果您this.forceUpdate()
在setTimeout
. 这是一个丑陋的修复,但它可能有助于理解根本情况。
更好的解决方案是将动作提取到具有自己loading
状态的自己的组件中:
const Actions = props => {
const [loading, setLoading] = useState(false);
return (
<span>
{loading ? (
<Icon type="loading" spin />
) : (
<a
href="#"
onClick={() => {
setLoading(true);
setTimeout(setLoading, 2000);
}}
>
Reload
</a>
)}
</span>
);
};
然后您的操作列变为:
<Column
title="Action"
key="action"
render={(text, record) => <Actions />}
/>
推荐阅读
- dart - 如何不自动转义“|” 到“%7C”
- java - dp 的背包问题让我的答案错误
- django - 电子邮件不在数字海洋中发送,仅在本地主机中工作
- python - 基于唯一值对 2D Numpy/CuPy 数组进行更快的迭代
- fpga - 异步 FIFO 深度计算
- python-3.x - 在 256 位 AES 加密 Python 中加密 PDF 文件
- html - 如何在达到其宽度 HTML 时使输入转到下一行
- pandas - 如何使用熊猫数据框绘制时间序列图
- permissions - SharePoint 在线访客访问不起作用 - 网站已损坏?
- ruby-on-rails - Rails 远程链接_以 React 函数响应