みなさんこんにちは!ひろぽんです!
いやーーFlutterはなんであんなに楽しいんやろか?というくらい楽しくて、日々ずっとコードを書いています!
そんなFlutterを程度かけるようになってくると、次のステップとしてFlutterでの状態管理をProviderでしようと思い始めると思います。
私もその1人なのですが、以前そのProviderでConsumerを使用する際に下記のような感じで怒られました。
Tried to call Provider.of<dynamic>. This is likely a mistake and is therefore
unsupported.
If you want to expose a variable that can be anything, consider changing
`dynamic` to `Object` instead.
'package:provider/src/provider.dart':
Failed assertion: line 307 pos 7: 'T != dynamic'
翻訳にかけると下記のような感じ。
Provider.of を呼び出そうとしました。 これは間違いである可能性が高いため、
サポートされていません。
何でもよい変数を公開したい場合は、変更を検討してください
代わりに「動的」から「オブジェクト」へ。
「パッケージ:プロバイダー/src/provider.dart」:
失敗したアサーション: 行 307 pos 7: ‘T != dynamic’
は??
って思っていろいろ調べて1時間はまりました。
原因は下記。
return Consumer(builder: (_,model,__){
ConsumerでラップしたWidgetを返しているのですが、Consumerにジェネリック型指定をしていない!!!!!
下記のように修正したら無事ビルドは通りました。
return Consumer<ProjectItemListViewModel>(builder: (_,model,__){
コメント