Salesforce LWC学习(四十) datatable的dynamic action的小坑浅谈

salesforce,lwc,学习,四十,datatable,dynamic,action,小坑,浅谈 · 浏览次数 : 242

小编点评

**总结:** 在lwc文档中,在使用动态 Action 时,可能遇到 timeout问题,因为异步操作导致了后续动态 Action 不显示的情况。 **解决方案:** 1. 将官方 demo 中的异步操作改成 Promise 类型。 2. 处理异步操作中的错误情况。 **具体步骤:** 1. 在您的代码中引入 `LightningDataTables` 和 `LightningResource` 类。 2. 创建一个 `LightningDataTable` 对象,指定数据源和列。 3. 在 `rowCallback` 方法中,使用 `$A.getRecord().getData().get('attributeName')` 等类似的方法获取每行中的属性值。 4. 当满足条件时,执行动态 Action。 5. 在动态 Action 中,使用 `$A.getRecord().getData().get('attributeName')` 等类似的方法获取每行中的属性值。 6. 处理异步操作中的错误情况。 7. 在 `doneCallback` 方法中,检查 `$A.getRecord().getData().get('attributeName')` 等类似的方法是否已完成。如果未完成,则显示错误信息。

正文

本篇参考: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的文档中已经发现了不止一处的这种看上去不是问题但是盲目复制粘贴使用会在某种场景报错的情况,复制粘贴以后还是需要自己思考一下为啥需要这种使用。篇中有错误地方欢迎指出,有不懂欢迎留言。

与Salesforce LWC学习(四十) datatable的dynamic action的小坑浅谈相似的内容:

Salesforce LWC学习(四十) datatable的dynamic action的小坑浅谈

本篇参考:https://developer.salesforce.com/docs/component-library/bundle/lightning-datatable/documentation 我们在项目中会用到针对table等显示 dynamic action的情况,即基于每行的特有属性

Salesforce LWC学习(四十四) Datatable 显示日期类型的有趣点思考

本篇参考:https://developer.salesforce.com/docs/component-library/documentation/en/lwc/lwc.reference_salesforce_modules 背景: 项目中经常用到datatable显示日期类型字段,并要求日期类

Salesforce LWC学习(四十) dynamic interaction 浅入浅出

本篇参考: Configure a Component for Dynamic Interactions in the Lightning App Builder - Salesforce Lightning Component Library Salesforce Help | Article G

Salesforce LWC学习(四十五) lwc支持Console App控制Tab了

本篇参考:https://help.salesforce.com/s/articleView?id=release-notes.rn_lwc_workspaceAPI.htm&release=246&type=5 https://developer.salesforce.com/docs/compo

Salesforce LWC学习(四十一) If:true 即将弃用?

本篇参考: https://developer.salesforce.com/docs/component-library/documentation/en/lwc/lwc.reference_directiveshttps://developer.salesforce.com/docs/compo

Salesforce LWC学习(四十二) getRecordNotifyChange已弃用

本篇参考: https://developer.salesforce.com/docs/component-library/documentation/en/lwc/lwc.reference_get_record_notify https://developer.salesforce.com/do

Salesforce LWC学习(四十三) lwc 零基础学习路径的视频已上传B站

本篇参考:https://www.bilibili.com/video/BV1QM411G7pN/ 还记得salesforce零基础学习(一百二十五)零基础学习SF路径 中描述的那样,预计今年年底以前基于0基础学习的内容录制成视频,更好的更方便的进行学习和互动。当时的一个动机是以前公司做veeva的

salesforce零基础学习(一百三十六)零碎知识点小总结(八)

本篇参考: Salesforce LWC学习(七) Navigation & Toast https://developer.salesforce.com/docs/platform/lwc/guide/use-navigate-url-addressable.html https://help.s

salesforce零基础学习(一百三十八)零碎知识点小总结(十)

本篇参考: https://help.salesforce.com/s/articleView?id=release-notes.rn_apex_5level_SOQLqueries.htm&release=250&type=5 https://developer.salesforce.com/to

salesforce零基础学习(一百三十七)零碎知识点小总结(九)

本篇参考: https://help.salesforce.com/s/articleView?id=release-notes.rn_lab_conditional_visibiliy_tab.htm&release=250&type=5 https://help.salesforce.com/s