ctx.form
現在のブロック内にある Ant Design Form インスタンスです。フォームフィールドの読み書き、バリデーションの実行、および送信に使用されます。ctx.blockModel?.form と等価であり、フォームブロック(フォーム、編集フォーム、子フォームなど)の下で直接使用できます。
適用シーン
注意:
ctx.formはフォームブロック(フォーム、編集フォーム、子フォームなど)に関連する RunJS コンテキストでのみ利用可能です。非フォームシナリオ(JSBlock 独立ブロック、テーブルブロックなど)では存在しない可能性があるため、使用前にctx.form?.getFieldsValue()のように空値チェックを行うことを推奨します。
型定義
FormInstance は Ant Design Form のインスタンス型です。主なメソッドは以下の通りです。
常用メソッド
フォーム値の読み取り
フォーム値の書き込み
バリデーションと送信
リセット
関連する context との関係
ctx.getValue / ctx.setValue
現在の JS フィールド内では、自身のフィールドの読み書きには getValue/setValue を優先的に使用します。他のフィールドにアクセスする必要がある場合に ctx.form を使用します。
ctx.blockModel
ctx.getVar('ctx.formValues')
フォーム値は await ctx.getVar('ctx.formValues') を通じて取得する必要があり、直接 ctx.formValues としては公開されていません。フォームコンテキスト内では、ctx.form.getFieldsValue() を使用して最新値をリアルタイムで読み取ることが推奨されます。
注意事項
getFieldsValue()はデフォルトでレンダリング済みのフィールドのみを返します。未レンダリングのフィールド(折りたたみエリア内や条件付き表示で隠れているものなど)を含めるには、trueを渡す必要があります:getFieldsValue(true)。- 子テーブルなどのネストされたフィールドのパスは配列になります(例:
['orders', 0, 'amount'])。ctx.namePathを使用して現在のフィールドのパスを取得し、同じ行の他の列のパスを構築するために利用できます。 validateFields()は、errorFieldsなどの情報を含むエラーオブジェクトをスローします。送信前のバリデーションに失敗した際、ctx.exit()を使用して後続のステップを終了させることができます。- イベントフローや連動ルールなどの非同期シナリオでは、
ctx.formがまだ準備できていない場合があります。オプショナルチェイニングや空値チェックの使用を推奨します。

