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.

RiverpodでStateNotifierを定義する際のエラー

Posted at

エラー文

'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ができていなくてエラーというケースが体感だと多い気がする。

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?