本篇參考: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的文件中已經發現了不止一處的這種看上去不是問題但是盲目複製貼上使用會在某種場景報錯的情況,複製貼上以後還是需要自己思考一下為啥需要這種使用。篇中有錯誤地方歡迎指出,有不懂歡迎留言。