본문 바로가기
개발자의 공부방/모바일

Flutter] Null Check, Null check operator used on a null value

by 쥬니준 2022. 3. 25.
728x90
반응형

Null에 관련된 부분을 신경써야한다.

예를 들어 아래와 같은 코드가 있다고 했을 때

Align(
    alignment: Alignment.center,
    child: ChartSvg(
            url: _marketMapNotifier.chartImageMap[
                widget.tickerNotifier.ticker.currencyPair]!,
            widthRatio: chartWidthRatio,
            height: chartHeight,
            color: getColor(),
          )
 ),
_marketMapNotifier.chartImageMap에서 chartImageMap은 Map<currencyPair, String?>으로 선언되어 있다.
 String?은 Null을 허용하고 있다.
 
 
그런데 위에 코드에서 아래와 같이 !느낌표를 사용해서 Null을 허용하지 않게 만들었다.
_marketMapNotifier.chartImageMap[widget.tickerNotifier.ticker.currencyPair]!,

 

그렇다보니 아래와 같은 에러가 뜬다.

════════ Exception caught by widgets library ═══════════════════════════════════
Null check operator used on a null value
The relevant error-causing widget was

널을 허용했는데 정작 view에서 사용하는 위젯에서는 null 허용을 하지 않겠다고 하니깐 뜨는 경우이다.

 

그래서 아래와 같이 처리를 했다.

 Align(
    alignment: Alignment.center,
    child: _marketMapNotifier.chartImageMap[
                widget.tickerNotifier.ticker.currencyPair] !=
            null
        ? ChartSvg(
            url: _marketMapNotifier.chartImageMap[
                widget.tickerNotifier.ticker.currencyPair]!,
            widthRatio: chartWidthRatio,
            height: chartHeight,
            color: getColor(),
          )
        : null,
  ),

 

Null check operator used on a null value 에러가 뜬다면 어디에서 ?을 사용했는데 !을 사용한 곳이 있는지

그리고 Null에 대한 관리를 데이터에서 받아오는 최초의 부분에서 클라이언트에서 보여지는 부분까지 잘 처리하고 있는지 확인해야한다.

반응형

댓글0