0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Flutter ProviderとViewを分ける

Posted at

●現状、やりたいこと
viewファイルでリストの並べ替えをしている。
より見やすいコードにするために

「viewは画面構成」
「providerはListの更新等の動作」
明確に役割分担をしたい。

●理想の動き
providerにListの並べ替える関数を作成し、
providerにある関数をviewに呼び出したい。

今回はこちらの式を使った

関数の定義
基本的な関数の定義は次のようになります。
戻り値の型 関数名 (仮引数の型 仮引数名)
{ return 戻り値; }

★before
todo_list.dart【view】

// isCompletedがtrueになっているTodoListのみのリストを再描画する
final completedTodoList = todoList.where((todo) => todo.isCompleted).toList();

list_provider.dart【provider】

未記入

★after
todo_list.dart【view】

// listProviderをnotifire(更新) completedTodoListの返り値で書き換え(Listを並び替え)
final completedTodoList = ref.watch(listProvider.notifier).completedTodoList();

list_provider.dart【provider】

 //並べ替えたいListの型 completedToDoListという関数を作成 並べ替えたリストの結果(返り値)を返す(return)
List completedTodoList() {
return state.where((todo) => todo.isCompleted).toList();
}

結論、どちらのコードでも同じ動きになるのだが、保守性や見易さを考えるとviewとproviderそれぞれ役割分担をすると良い。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?