コンテンツにスキップ

ブラウザが持つ入力

Surface内でui.local("form", initialValue)を宣言し、入力部品で編集するフィールドを選びます。数値のtemperatureを持つフォームの場合は次のように参照します。

  • TypeScript: 部品の結び付けにはform.field("temperature").bind()、Actionに渡す入力式にはform.field("temperature").value()を使います。
  • Python: RunInputのdataclassなど型付きの初期値を使い、部品のbind=にはform.temperatureを渡します。Actionにはinput=formでフォーム全体を渡すか、input={"temperature": form.temperature}で入力を組み立てます。明示的な型付き参照にはform.field("temperature", float)に続けて.bind()や.value()を使います。
  • Rust: RunInputにActionInputをderiveし、部品の結び付けにはform.field(RunInput::field_temperature()).bind()?、生成されたRunInputInputの入力式にはform.field(RunInput::field_temperature()).value()を使います。

bind()とvalue()はPointer引数を取りません。フィールドを選ばなければLocalの値全体が対象です。Action登録はSDKリファレンス、フォーム全体の例はSDKガイドを参照してください。

操作時にレンダラーが式を確定済みJSONに変換します。アプリのRuntimeは入力途中の値を保存しません。

Localの初期値は最初の一度だけ適用され、サーバーが再描画しても入力は保たれます。明示的に戻す場合はTypeScriptのresetKey、Pythonのreset_key、Rustのlocal_withを使います。アプリの状態更新だけでは入力を上書きしません。

条件付きで現れる入力にも安定したキーを付けます。フォーム全体の例はSDKガイドを参照してください。