Size: a a a

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

2020 September 14

SI

Stanislav Ilin in Dart & Flutter по-русски
Вроде его сайт )
источник

AP

Artur Ponomarenko in Dart & Flutter по-русски
Всем добрый день. У меня есть такой вопрос. Если создаю кнопку и передаю ей в onPressed выражение типа такого:

onPressed: _numberPlateIsEntered()
   ? () {
        // button actions
     }
   : null,


То все работает корректно и кнопка дизейблится, если возвращается null. Но, если я тоже самое оборачиваю в функцию и делаю так:


onPressed: _nextButtonAction()

VoidCallback _nextButtonAction() {
 if (_numberPlateIsEntered()) {
   return () {
     // button action
   };
 } else {
   return null;
 }
}


То уже кнопка не дизеблится. Подскажите, пожалуйста, почему
источник

MA

Maks Andrienko in Dart & Flutter по-русски
Artur Ponomarenko
Всем добрый день. У меня есть такой вопрос. Если создаю кнопку и передаю ей в onPressed выражение типа такого:

onPressed: _numberPlateIsEntered()
   ? () {
        // button actions
     }
   : null,


То все работает корректно и кнопка дизейблится, если возвращается null. Но, если я тоже самое оборачиваю в функцию и делаю так:


onPressed: _nextButtonAction()

VoidCallback _nextButtonAction() {
 if (_numberPlateIsEntered()) {
   return () {
     // button action
   };
 } else {
   return null;
 }
}


То уже кнопка не дизеблится. Подскажите, пожалуйста, почему
по моему просто где то с условием перепутал
источник

DK

Danial Kolyasnikov in Dart & Flutter по-русски
Artur Ponomarenko
Всем добрый день. У меня есть такой вопрос. Если создаю кнопку и передаю ей в onPressed выражение типа такого:

onPressed: _numberPlateIsEntered()
   ? () {
        // button actions
     }
   : null,


То все работает корректно и кнопка дизейблится, если возвращается null. Но, если я тоже самое оборачиваю в функцию и делаю так:


onPressed: _nextButtonAction()

VoidCallback _nextButtonAction() {
 if (_numberPlateIsEntered()) {
   return () {
     // button action
   };
 } else {
   return null;
 }
}


То уже кнопка не дизеблится. Подскажите, пожалуйста, почему
А почему у тебя тут VoidCallback ?
источник

КА

Кирилл Апарин... in Dart & Flutter по-русски
Danial Kolyasnikov
А почему у тебя тут VoidCallback ?
Согласен
источник

AP

Artur Ponomarenko in Dart & Flutter по-русски
Я посмотрел конструктор RaisedButton
источник

MA

Maks Andrienko in Dart & Flutter по-русски
кстати да
просто поставь void
источник

MA

Maks Andrienko in Dart & Flutter по-русски
Function поставь
источник

DK

Danial Kolyasnikov in Dart & Flutter по-русски
Maks Andrienko
кстати да
просто поставь void
Нет он функцию возвращает
источник

КА

Кирилл Апарин... in Dart & Flutter по-русски
Artur Ponomarenko
Всем добрый день. У меня есть такой вопрос. Если создаю кнопку и передаю ей в onPressed выражение типа такого:

onPressed: _numberPlateIsEntered()
   ? () {
        // button actions
     }
   : null,


То все работает корректно и кнопка дизейблится, если возвращается null. Но, если я тоже самое оборачиваю в функцию и делаю так:


onPressed: _nextButtonAction()

VoidCallback _nextButtonAction() {
 if (_numberPlateIsEntered()) {
   return () {
     // button action
   };
 } else {
   return null;
 }
}


То уже кнопка не дизеблится. Подскажите, пожалуйста, почему
onPressed: _nextButtonAction()

_nextButtonAction() {
 if (_numberPlateIsEntered()) {
     // button action
 } else {
    null;
 }
}
источник

КА

Кирилл Апарин... in Dart & Flutter по-русски
Попробуй
источник

КА

Кирилл Апарин... in Dart & Flutter по-русски
Я думаю может даже else убрать
источник

AP

Artur Ponomarenko in Dart & Flutter по-русски
Но мне ведь нужно функцию вернуть, а не выполнить ее здесь
источник

КА

Кирилл Апарин... in Dart & Flutter по-русски
Artur Ponomarenko
Но мне ведь нужно функцию вернуть, а не выполнить ее здесь
onPressed: _nextButtonAction()

_nextButtonAction() {
 if (_numberPlateIsEntered()) {
   return () {
     // button action
   };
 } else {
   return null;
 }
}
источник

КА

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

AP

Artur Ponomarenko in Dart & Flutter по-русски
Не. Тот же результат.
Попробовал
и
Function _nextButtonAction()

и
_nextButtonAction()
источник

DK

Danial Kolyasnikov in Dart & Flutter по-русски
Artur Ponomarenko
Не. Тот же результат.
Попробовал
и
Function _nextButtonAction()

и
_nextButtonAction()
Я могу ошибаться, но оставь  _numberPlateIsEntered()
   ? callback
   : null,
источник

AP

Artur Ponomarenko in Dart & Flutter по-русски
Попробовал так
VoidCallback _nextButtonAction() {
 return _numberPlateIsEntered()
     ? () {
   print("Button action");
 }
     : null;
}

Тоже самое. Ладно всем спасибо. Это не критично. Но не совсем понятно почему это так работает
источник

AP

Artur Ponomarenko in Dart & Flutter по-русски
Решил сделать так:

onPressed: _numberPlateIsEntered() ? _nextButtonAction : null,

void _nextButtonAction() {
  print(‘button action’);
}
источник

S

S in Dart & Flutter по-русски
в "flutter doctor"  показывает все ок, но при "flutter run " - ошибка FAILURE: Build failed with an exception.
источник