Flutter2.2以降はSearchDelegateのジェネリクスをNullableにしないとエラーになります

Flutterで以下のような検索ページを簡単に作れる「SearchDelegate」クラスというのがありますが、

このクラスを使う際に、Flutter2.2以降はNull Safetyが強制適用されましたので、戻り値のジェネリクスをNullable(?付き)にしないとエラーになりますので注意が必要です。

(以下上記issueから機会翻訳)

SearchDelegateウィジェットを拡張する際には、close()メソッドを使用してルートをポップする必要があります。

null safetyがないと、基礎となるNavigatorState.pop()にnull値を渡すことができ、処理すべき結果がないことになります(アプリケーションの観点から)。
NULLセーフでは、上位のclose()メソッドがあるため、このようなことはできません。

また、これはオプションの結果を許可するshowSearch<T>(delegate: ? extends SearchDelegate)にも関連しています。
この連鎖は矛盾しています。

したがって、期待される動作は、このメソッドでオプションの結果を許可するようにシグネチャを変更し、基礎となるリソースを解放しないことで将来のバグを回避することです。

(だからジェネリクスをNullableにする必要あり)

 

(詳しくは、以下の動画で解説していますので、よろしければご覧下さい)

こんな記事も読まれています

おすすめコンテンツ




Flutter(フラッター)


みんプロ作成アプリ




TOP