2

TextFormField で値が変更されたときに、Flutter アプリケーションで GetX パッケージを使用して Text ウィジェットでリアクティブな更新を取得する方法を理解しようとしています。Text ウィジェットに表示されるのは、監視可能なオブジェクトのプロパティです。そして、TextFormField から更新されるのはそのプロパティです。コントローラーでは値が正しく更新されますが、ウィジェットでは更新されません。文字列変数を直接使用すると、正しく更新されます。しかし、オブジェクトを使用するとすぐに更新されなくなります。

これは私のアプリケーションの非常に単純なサンプルです。基本が理解されていることを確認するためです。

これが私のコードです:

class User {
  String name = "";
}

class TestController extends GetxController {
  TestController();

  final user = User().obs;
}

class MyHomePage extends StatelessWidget {
  final c = Get.put(TestController());
  final String title;
  MyHomePage({this.title});
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(title),
      ),
      body: Center(
        child: Container(
          width: Get.width * 0.8,
          height: Get.height * 0.8,
          child: Column(
            children: [
              Obx(() => Text(c.user.value.name)),
              TextFormField(
                onChanged: (value) => c.user.value.name = value,
              ),
            ],
          ),
        ),
      ),
    );
  }
}

助けてくれて本当にありがとうございます !

4

2 に答える 2