Оператор If с виджетом контейнера в Flutter

#flutter

#flutter

Вопрос:

Я создал условие, чтобы, если значение отличается от null, я хотел, чтобы отображался контейнер с этой информацией, если значение равно null, я не хочу ничего показывать, но проблема в том, что вместо этого появляется текст null. Что может происходить?

 @override
  Widget build(BuildContext context) {
return Scaffold(
          backgroundColor: Colors.white,
          body: Column(
            children: [
            Container(
                child: ("$_info" != null)
                    ? Container(
                        padding:
                            EdgeInsets.symmetric(horizontal: 20, 
                            vertical: 35),
                        child: Text(
                          "$_info",
                          textAlign: TextAlign.center,
                          style: TextStyle(
                              fontFamily: 'Montserrat',
                              fontSize: 14,
                              fontWeight: FontWeight.w500),
                        ),
                      )
                    : Container(),
                 ),
               ],
              ),
             };
 

Ответ №1:

Вы не должны создавать новую строку из _info и проверять, отличается ли она от null, как в

 "$_info" != null
 

Это всегда будет верно, потому что все строки отличаются от null . Таким образом, вы увидите текст «null», появляющийся на экране, потому что у вас есть Text("$_info") позже.

Вместо этого вы должны просто проверить, отличается ли _info оно от null. Итак:

 _info != null