エラー文
'OthelloNotifier' doesn't conform to the bound 'StateNotifier<List<dynamic>>' of the type parameter 'Notifier'.
Try using a type that is or is a subclass of 'StateNotifier<List<dynamic>>'.
簡単に翻訳すると、OthelloNotifierはStateNotifier<List<dynamic>>に適合する型ではありません。StateNotifier<List<dynamic>>、もしくはStateNotifier<List<dynamic>>のサブクラスを使ってください、といった感じ。
ざっくりまとめると、型が違うと怒られている。
該当コード
import 'package:hooks_riverpod/hooks_riverpod.dart';
class OthelloNotifier extends StateNotifier {
OthelloNotifier()
: super([
//省略
);
}
final othelloProvider =
StateNotifierProvider<OthelloNotifier, List>((ref) => OthelloNotifier());
これの最後の行のStateNotifierProvider<OthelloNotifier, List>でエラーが発生している。
ここでOthelloNotifierの型を確認してみると、class OthelloNotifier extends StateNotifier<dynamic>となっていた。求められている、というより自身で指定した型はStateNotifier<List<dynamic>>なのでListの部分が足りていない。
解決方法
class OthelloNotifier extends StateNotifier<List> {
// 以下省略
}
OthelloNotifierクラスを定義する際に型の指定をしてあげると解決する。
Flutterで関数を定義したり変数を宣言す際は型の指定をしなくても自動で認識してくれる機能があるので、これもいけるのかなと思っていたらエラーになりました......
型違いでエラーが出た時はそれぞれの型を確認してあげると解決することが多い印象。null_checkができていなくてエラーというケースが体感だと多い気がする。