AI翻訳通知
このドキュメントはAIによって翻訳されました。正確な情報については英語版をご参照ください。
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がまだ準備できていない場合があ ります。オプショナルチェイニングや空値チェックの使用を推奨します。
例文
フィールド連動:タイプに応じて異なる内容を表示する
他のフィールドに基づいて現在のフィールドを計算する
子テーブル内で同じ行の他の列を読み書きする
送信前のバリデーション
確認後に送信する
関連情報
- ctx.getValue() / ctx.setValue():現在のフィールド値の読み書き
- ctx.blockModel:親ブロックモデル。
ctx.formはctx.blockModel?.formと等価 - ctx.modal:確認ダイアログ。
ctx.form.validateFields()やctx.form.submit()と組み合わせて使用 - ctx.exit():バリデーション失敗時やユーザーキャンセル時にプロセスを終了
ctx.namePath:現在のフィールドのフォーム内パス(配列)。ネストされたフィールドでgetFieldValue/setFieldValueの名前を構築する際に使用

