Flutterのnullエラー Null check operator used on a null value解決

Flutter勉強中の初級レベルの備忘録です。

 

FlutterFire でgoogleログインして、ログインしてない場合はログインスクリーンへ飛ばしたいという機能を考えてみます。

 


_auth.currentUser?.uid

 

詳しくはこちら

 

上記のように書くと、FlutterFire でgoogleログイン状態がとれるんですけど、もしログインしてない場合は、nullが返ってくる。

 

それでnullを普通に比較しようとすると、Null check operator used on a null value のエラーが出ます。これを直すためには、下記のように書きます。

 


var isUserLogin = _auth.currentUser?.uid ?? false;

home: isUserLogin == false ? LoginScreen() : ProfileScreen(),

 

詳しくはこちら

 

これで、Null check operator used on a null value に引っかからずにコードが動きます。

 

 

これは、初期化されていない nullable インスタンスに bang 演算子(!)を使用した場合に発生するので、

 

最初に初期化して、それを比較すればnull に対応できるということですよね。

 

ちなみに、null判定の比較の部分は、こちらを参考にしてみてください。

 

bool outConn = null ?? false; // false
bool outConn = false ?? false; // false
bool outConn = true ?? false; // true

 

詳しくはこちら
藤沢瞭介(Ryosuke Hujisawa)
  • りょすけと申します。18歳からプログラミングをはじめ、今はフロントエンドでReactを書いたり、AIの勉強を頑張っています。off.tokyoでは、ハイテクやガジェット、それからプログラミングに関する情報まで、エンジニアに役立つ情報を日々発信しています!

Flutterプログラミング言語

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です