Size: a a a

Dart & Flutter по-русски

2020 August 23

SB

Serg Bell in Dart & Flutter по-русски
в код не глядел, предположил, что в Row у тебя текст + свитчер
источник

КА

Кирилл Апарин... in Dart & Flutter по-русски
А, там пробовал конечно
источник

КА

Кирилл Апарин... in Dart & Flutter по-русски
Не происходит ничего
источник

SB

Serg Bell in Dart & Flutter по-русски
ограничения не заданы
источник

W

WINDOF in Dart & Flutter по-русски
Юрий
Как всех перемыкает с сетстейтом при ините - ужас, и ведь никто или по незнанию или я уже думаю, что специально не желает прочитать про futurebuilder
а где можно почитать?
источник

GV

Gorohov Valeriy in Dart & Flutter по-русски
WINDOF
Ребят, всем привет, очень нужна помощь!
У меня происходит какая-то странная ошибка и я никак не могу понять, с чем это связано...
В общем, суть такая: в initState я вызываю функцию, которая достает объект из firebase и присваивает его. Выглядит все это так:

@override
 void initState() {
   _loadCourse();
   super.initState();
 }

 void _loadCourse() {
   dbHelper.getCourseById(widget.id).then((course) => {
         setState(() {
           currentCourse = course;
           print(currentCourse.name);
         })
       });
 }

причем, как вы могли заметить, внутри setState я проверяю, равен ли мой currentCourse null. Нет, с ним все в порядке и все его методы на месте. Но почему-то функция build считает по-другому. Она падает, говоря мне, что мой currentCourse равен null и я не могу вызывать его свойства. Вот сама build:

@override
 Widget build(BuildContext context) {
   return Scaffold(
     body: Container(
       child: Column(children: <Widget>[
         Text(currentCourse.name),
         Text(currentCourse.link),
         Text(currentCourse.platform),
         Text(currentCourse.progLang)
       ]),
     )
   );
 }

То есть я пока даже не делаю ничего особенного, просто хочу вывести на экран без наведения красоты. Если кто знает, что нужно сделать, пожалуйста, помогите, я уже всю голову сломал...
У тебя build вызывается сразу после init. И в этот момент currentCourse == null, setState вызывает build уже повторно
источник

КА

Кирилл Апарин... in Dart & Flutter по-русски
Serg Bell
ограничения не заданы
Как сделать то?
источник

W

WINDOF in Dart & Flutter по-русски
Gorohov Valeriy
У тебя build вызывается сразу после init. И в этот момент currentCourse == null, setState вызывает build уже повторно
Я пробовал сделать проверку в build-e, если currentCourse == null, то просто sizedBox пустой отображать. Не помогло, теперь на полсекунды белый экран, а потом та же ошибка
источник

КА

Кирилл Апарин... in Dart & Flutter по-русски
На сколько процентов выдвигается Drawer?
источник

W

WINDOF in Dart & Flutter по-русски
WINDOF
Я пробовал сделать проверку в build-e, если currentCourse == null, то просто sizedBox пустой отображать. Не помогло, теперь на полсекунды белый экран, а потом та же ошибка
вот так:

return Scaffold(
     body: currentCourse != null ? Container(
       child: Column(children: <Widget>[
         Text(currentCourse.name),
         Text(currentCourse.link),
         Text(currentCourse.platform),
         Text(currentCourse.progLang)
       ]),
     ) : SizedBox(),
   );
источник

GV

Gorohov Valeriy in Dart & Flutter по-русски
WINDOF
Я пробовал сделать проверку в build-e, если currentCourse == null, то просто sizedBox пустой отображать. Не помогло, теперь на полсекунды белый экран, а потом та же ошибка
Значит какое-то поле null
источник

КА

Кирилл Апарин... in Dart & Flutter по-русски
Может сделать с помощью MediaQuery.of(context).size.width*(x%)
источник

GV

Gorohov Valeriy in Dart & Flutter по-русски
WINDOF
вот так:

return Scaffold(
     body: currentCourse != null ? Container(
       child: Column(children: <Widget>[
         Text(currentCourse.name),
         Text(currentCourse.link),
         Text(currentCourse.platform),
         Text(currentCourse.progLang)
       ]),
     ) : SizedBox(),
   );
return Scaffold(
     body: currentCourse != null ? Container(
       child: Column(children: <Widget>[
          if (currentCourse.name != null) Text(currentCourse.name),
          if (currentCourse.link != null) Text(currentCourse.link),
          if (currentCourse.platform != null) Text(currentCourse.platform),
          if (currentCourse.progLang != null) Text(currentCourse.progLang)
       ]),
     ) : SizedBox(),
   );
источник

КА

Кирилл Апарин... in Dart & Flutter по-русски
Gorohov Valeriy
return Scaffold(
     body: currentCourse != null ? Container(
       child: Column(children: <Widget>[
          if (currentCourse.name != null) Text(currentCourse.name),
          if (currentCourse.link != null) Text(currentCourse.link),
          if (currentCourse.platform != null) Text(currentCourse.platform),
          if (currentCourse.progLang != null) Text(currentCourse.progLang)
       ]),
     ) : SizedBox(),
   );
Так нельзя
источник

КА

Кирилл Апарин... in Dart & Flutter по-русски
Условия if нельзя писать в таком месте
источник

SB

Serg Bell in Dart & Flutter по-русски
сча можно
источник

КА

Кирилл Апарин... in Dart & Flutter по-русски
либо ? ставь
currentCourse.name != null? Text(currentCourse.name):Container(),
источник

SB

Serg Bell in Dart & Flutter по-русски
но синтаксис другой
источник

КА

Кирилл Апарин... in Dart & Flutter по-русски
Serg Bell
сча можно
Рил?
источник

КА

Кирилл Апарин... in Dart & Flutter по-русски
Как я показал?
источник