初めてSalesforce LWC の開発時にはまったこと
技術を担当しています。宮原と申します。
こちらにて、不定期になると思いますが、Salesforce LWCでの開発関係で見つけたこと、悩んだことなどを備忘録的に投稿していこうと思っています。よろしくお願いします。
自己紹介を簡単にさせていただくと、18才から愛知県の自動車関連企業にてプログラム開発に携わり、役場職員、酒造メーカー、ネットワーク技術者を経由してSalesforceの開発を10年程度かかわってきた50代のプログラマーです。
流石にこの年までプログラマーをしてくるとは思いませんでしたが、ここまで来たら生涯現役を目指して頑張っていこうと思っています。中には他の技術者から見ると、当然じゃない?というような基礎的な記事もあると思いますが、温かく見守っていただければと思います。
さて、初回という事もありまして、LWC開発にて色々大変だったり、トラブったりしたことを、投稿していこうと思います。すべてではありませんが、今までのApex+Visualforceでは、苦労しなかったのに、こんなに苦労する事になるとはと思った内容です。
当然、LWCのパーツを利用しない構築ならば、発生しない場合もありますが、それではあまり意味がないこともあり、LWCの標準ライブラリー、パーツを利用した構築を前提とさせて頂きます。
1.起動時における子コンポーネントの初期化処理
親コンポーネントから、子コンポーネント開く際に、起動時の関数(connectedCallback()など)を利用して初期化実施しようとしても、うまくいきません。
例)親で選択された取引先のIDを利用して、子コンポーネントにて取引先一覧を取得
<× 取得できない実装>
親CmpからIDのみを渡し、取得処理を子Cmpの初期化処理にて取得処理
<○取得できる処理>
親Cmpにて取引先責任者のデータを取得し、引数に追加
※「connectedCallback()」の処理は、親コンポーネントと同時に処理されるため、親コンポーネントが、起動した時点で一緒に処理されます。その他の起動時処理を利用しても工夫等が必要です。素直に親から渡すようにした方が、表示時の描画処理も含め容易に構築可能です。
2.表形式における文字色および背景色の設定(DataTable利用時)
3.DataTableと子画面を利用した編集機能の実装
4.子画面におけるウィザード形式での登録処理
以上となります。今からLWCの構築を行う方は、一度公式マニュアルを読み込んでみてください。特に今回記載したような内容が含まれている場合は、きっと落とし穴が沢山あるはずです。皆様の構築において、少しでもそれら苦労が回避できればと思います。
Comments