ブラウザが持つ入力
入力途中の値はレンダラーに
Section titled “入力途中の値はレンダラーに”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は入力途中の値を保存しません。
再描画とリセット
Section titled “再描画とリセット”Localの初期値は最初の一度だけ適用され、サーバーが再描画しても入力は保たれます。明示的に戻す場合はTypeScriptのresetKey、Pythonのreset_key、Rustのlocal_withを使います。アプリの状態更新だけでは入力を上書きしません。
条件付きで現れる入力にも安定したキーを付けます。フォーム全体の例はSDKガイドを参照してください。