本篇参考:https://developer.salesforce.com/docs/component-library/bundle/lightning-datatable/documentation
我们在项目中会用到针对table等显示 dynamic action的情况,即基于每行的特有属性,展示这行满足条件的action。比如我们的一个文件目录的管理系统,针对文件的操作,我们可以修改文件名称以及删除文件,如果当前的行代表目录的话,我们可以添加子目录操作,这个添加子目录就是针对目录类型的行独有的action操作。我们就可以基于官方的demo进行快速的复制粘贴然后修改。
本来都尝试的好好的,结果遇到了一个偶发性的问题。可以查看此视频查看效果:http://iqiyi.cn/cexYAmW-61
这个原因貌似是timeout基于异步,当我们频繁的切换点击以后,还没来得及执行 doneCallback导致了上述视频中的 dynamic action后续就不显示的情况或者显示错误情况(可以显示的是前一个切换的那种)
基于这种情况,需要将官方demo中的 timeout的异步方式改成 Promise方式即可顺利解决。
总结: 我们在lwc的文档中已经发现了不止一处的这种看上去不是问题但是盲目复制粘贴使用会在某种场景报错的情况,复制粘贴以后还是需要自己思考一下为啥需要这种使用。篇中有错误地方欢迎指出,有不懂欢迎留言。