Open13

Flutter(Dart)学習記録

Reyt0mReyt0m
TextField(
              // テキスト入力により、状態変更を検知する
              onChanged: (String value) {
                setState(() {
                  _text = value;
                });
              },
            ),

これはどういう意味なのだろう。stateが変更されたことを検知するのはわかるけど、これってアロー関数に出来るんじゃないのか?
onChanged : (String (value) => {
だと何がだめなのだろう。アロー関数がよく分からん。
あと、setStateの(() {...}) もよくわからん。なぜそこに無名関数がいるのだろうか。

Reyt0mReyt0m

statefullwidgetクラスの特徴は下記の通り

Widgetにstateを継承させて拡張している
StatefulWidgetはbuildメソッドを持たない
createStateメソッドを持ち、これがStateクラスを返す
stateが変化したときに再描画を指示するメソッドが存在
StatefulWidget自体はstateクラスを返すようになっているだけのシンプル構造
複雑な処理等はStateクラスで持つため、ここのコードが長くなる

とある
https://qiita.com/Nedward/items/a1b1a52439d731031581#statefulwidget

Reyt0mReyt0m

まめちしき

メンバ変数のアクセス制御
rubyのようにpublicやprivateを置いてアクセス制御するのではなく、Dartでは、_を用いることで、private変数として扱い、アクセス制御をします

Reyt0mReyt0m

削除機能や更新機能ってあるけど、つまり、データ自体の削除と、データの編集ってことなんですかね。
これらへのアクセスってどうするんだろう
https://www.flutter-study.dev/todo-app/add-page

Reyt0mReyt0m
onPressed: () {
		  setState(() {
		    todoList.removeAt(index);
		  });
		},

削除がこれだけで出来るらしい。なんだこれ。
removeAt(index)で対応するidを消しているのだろうけど。。。

Reyt0mReyt0m

更新するには、ListViewに渡されたデータをindexから受け取ってきて、ToDoUpdatePageにわたす必要があるのだが、
どうやってこのStateを渡せばよいのだろうか。

 body: ListView.builder(
        itemCount: todoList.length,
        itemBuilder: (context, index) {
          return Card(
            child: ListTile(
              title: Text(todoList[index]),
              onTap: () async {
                final updateListText = await Navigator.of(context)
                    .push(MaterialPageRoute(builder: (context) {
                  return ToDoUpdatePage();
                }));
              },
            ),
          );