前提
本一覧を取得するアプリを作っています。
本一覧はfirebaseから取得しています。
YouTubeを参考に状態管理をしたいと思ったのですがriverpodでやる方法がいまいちよくわかりません。
・参考にしているYouTube
・参考にしたサイト
記述やエラーなどは下部に記載します。
実現したいこと
riverpodを使った状態管理をしたい。
発生している問題・エラーメッセージ
エラーメッセージ
該当のソースコード
lib/model/(状態管理ファイル)
dart
1import 'package:cloud_firestore/cloud_firestore.dart'; 2import 'package:flutter/material.dart'; 3import 'package:flutter_riverpod/flutter_riverpod.dart'; 4 5import '../domain/book.dart'; 6 7final bookListProvider = ChangeNotifierProvider<BookListModel>((ref) { 8 return BookListModel(); 9}); 10 11class BookListModel extends ChangeNotifier { 12 final Stream<QuerySnapshot> _userStream = 13 FirebaseFirestore.instance.collection('books').snapshots(); 14 15 // booksという配列を作成 null許容 16 List<Book>? books; 17 18 void fetchBookList() async { 19 final QuerySnapshot snapshot = 20 await FirebaseFirestore.instance.collection('books').get(); 21 22 final List<Book> books = snapshot.docs.map((DocumentSnapshot document) { 23 Map<String, dynamic> data = document.data() as Map<String, dynamic>; 24 25 final String title = data['title']; 26 final String author = data['author']; 27 28 return Book(title, author); 29 }).toList(); 30 31 this.books = books; 32 notifyListeners(); 33 } 34} 35
lib/book_list_page(表示するファイル)
dart
1import 'package:book_list_project/book_list/book_list_model.dart'; 2import 'package:cloud_firestore/cloud_firestore.dart'; 3import 'package:flutter/material.dart'; 4import 'package:flutter_riverpod/flutter_riverpod.dart'; 5 6 7class BookListPage extends ConsumerWidget { 8 9 Widget build(BuildContext context, WidgetRef ref) { 10 11 final bookListProvider = ref.read(bookListProvider); // ここでエラー 12 13 return Scaffold( 14 appBar: AppBar( 15 title: Text('本一覧'), 16 ), 17 body: Center(child: ), 18 floatingActionButton: FloatingActionButton( 19 onPressed: null, 20 tooltip: 'Increment', 21 child: const Icon(Icons.add), 22 ), // This trailing comma makes auto-formatting nicer for build methods. 23 ); 24 } 25} 26
試したこと
riverpodに関しての記事は見ているのですが、別ファイルで管理しているものがなく、参考になりません。
エラー内容では見つからない?という感じでしたがなぜでしょうか。
補足情報(FW/ツールのバージョンなど)
mac
vscode
flutter 3
flutter_riverpod: ^1.0.4
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。