Программирование : Dart & Flutter по-русски
Семён undefined
сервис для велодорожек?
?iriu?
[
{
"type": "pre",
"text": "Future _getPersoneslist,\n....\n@override\n\n\n void initState() {\n _getPersoneslist = getPersoneslist();\nsuper.initState();\n}\n....\nfuture: _getPersoneslist",
"language": ""
}
]
prz
так точно, уже дошло, что проманал инитстейст в принципе. спасибо )
prz
а нет. не прокнуло. при переходе на страницу все равно вываливает ошибку
Семён Колесников
Да и лучше по-хорошему использовать switch: switch (snapshot.connectionState) { case ConnectionState.done: case ConnectionState.waiting: case ConnectionState.ещёчто-то там: default: if (snapshot.hasError) ...
prz
получается, что он пытается получить данные быстрее, чем функция отрабатывает
Дмитрий Щербаков
Подтверждаю тоже через е-мейл только авторизация, за день прошло)
prz
по моему им пофиг. даёте им логин/пароль любой для авторизации на проверку и все
Дмитрий Щербаков
Да так и делал
Вадим Резниченко
Здравствуйте. Насколько важно оборачивать переменные в классах в геттеры и сеттеры? Или в отсутствии сокрытия нет ничего плохого?
prz
[
"child: FutureBuilder(\n future: getPersoneslist(),\n builder: (BuildContext context, AsyncSnapshot snapshot) {\n print(",
{
"type": "link",
"text": "snapshot.data"
},
");\n if (",
{
"type": "link",
"text": "snapshot.data"
},
" == null) {\n\n\n2\nI/flutter (17601): null"
]
Семён undefined
solid это рекомендации
Вадим Резниченко
т е в принципе можно не оборачивать?
Семён undefined
нравится быдлокодить — пожалуйста
Вадим Резниченко
не нравится
Семён Колесников
У тебя getPersoneslist() - async?
Семён undefined
а с чем у тебя проблемы
Вадим Резниченко
Именно с этим вопросом. Насколько это будет быдлокод. Судя по всему очень даже
prz
но пока не очень понятно какая разница. до тех пор, пока функция не отработает - снапшоты в любом случае являются нуль
Семён Колесников
Посмотри if(snapshot.hasError)
prz
тоже в исключение падает
Семён Колесников
Так а сам getPersoneslist() возвращает что-то?)
Семён undefined
да пусть просто функцию скинет
Семён Колесников
Нет, в реализации getPersoneslist() возвращаемое значение вообще есть?
Семён Колесников
Я это имею ввиду
prz
там json запрос. если данных нет - не отвечает вообще ничего
Oleg
А если сделать if(snapshot.connectionState == ConnectionState.done) {что то сделать}
prz
если при exception нажать continue, то выводится "нет камер"
Oleg
так походу у тебя фьючер то не завершается
Семён undefined
ну да всё логично всё понятно
Oleg
метод без скобок укажи в future
prz
: "The argument type 'Future > Function()' can't be assigned to the parameter type 'Future'.",
Oleg
FutureBuilder<Твой лист>
prz
[
{
"type": "pre",
"text": "Future _getPersoneslist,\n....\n@override\n\n\n void initState() {\n _getPersoneslist = getPersoneslist();\nsuper.initState();\n}\n....\nfuture: _getPersoneslist",
"language": ""
}
]
prz
при переходе на страницу все равно exception
Oleg
а тебе эта переменная вообще зачем?
prz
походу я запутался в трёх соснах
Oleg
хз зачем тебе эта переменная, у тебя метод фьючер и так возвращает, просто метод прокинь в билдер
prz
а можно подробней для тех, кто в детстве занимался каратэ?
Oleg
ну напиши в личку тогда, чтобы людей не напрягать, чтением нашего диалога
Adel Gilyazeev
Не такая уж и злая)))
Adel Gilyazeev
Кто нибудь знает более хорошую реализацию перехода?
Adel Gilyazeev
Шоб Хоум не успевал прорендериться, а сразу навигатор имел стек из трёх страниц
Вадим Резниченко
не понял вопроса
Вадим Резниченко
что значит навигатор имел стек из трех страниц?
Вадим Резниченко
можешь просто navigator.push сделать по разу на страницу
Adel Gilyazeev
Чтобы вместо домашней страницы при самом первом рендере (читай после запуска приложения) в стеке навигатора было три страницы
Adel Gilyazeev
Я так тут и делаю
Oleg
положитть руками в pages?
Adel Gilyazeev
При первом фрейме
Вадим Резниченко
менее костыльный вариант кст
Adel Gilyazeev
Ладно историю роутинга
Oleg
собственно пуш это и делает
Adel Gilyazeev
Тогда как мне запушить в навигатор сразу под WidgetApp?
Вадим Резниченко
да, но пуш предназначен для другого
Вадим Резниченко
меня еще кое что смущает как ты через телефон/планшет прогаешь
Adel Gilyazeev
Я не прогаю, я код показал)
Вадим Резниченко
пушить))) но не именно класть в pages страницы
Adel Gilyazeev
Прост сегодня вот придумал такое самое оптимальное решение
Adel Gilyazeev
Не замечал... У меня pages всегда empty
Oleg
так это одно и тоже, разница в подходе
Adel Gilyazeev
Я так и не понял как нормально туда пушить
Adel Gilyazeev
Так чего в итоге?
Adel Gilyazeev
Тогда как прервать лейаут? Чтобы можно было пуш провести?
Adel Gilyazeev
Ну построение
Oleg
а зачем его рендерить если сразу на 3 страницу прыгаем?
Adel Gilyazeev
Потому что у меня пуши, как я понимаю по доке, делаются после первого отрисованного кадра
Adel Gilyazeev
Так у меня код в билде же, то есть в построении виджета
Adel Gilyazeev
Я вот и спрашиваю можно ли как то за билд его вынести
Oleg
засандаль иф в навигатор, и там прямо верни массив из 3 страниц
Adel Gilyazeev
Как получить доступ к нему?
Adel Gilyazeev
Или чего ты имеешь ввиду?
Adel Gilyazeev
Можно пример на псевдокоде
Adel Gilyazeev
Я лишь знаю костыль чтобы первый кадр был пустой виджет и вот после его отображения сразу же закинуть Хоум или сразу три страницы, сделав предварительно поп
Oleg
Navigator(pages:[if(state) ...[page1(), page2()]]);
Adel Gilyazeev
Так тогда по подробнее
Oleg
где то там в корне возвращай навигатор это ж втджет , там меняй свои стеки в зависимости от состояния
Adel Gilyazeev
Так у меня корень это WidgetApp
Adel Gilyazeev
У него в начальном экране этот хоум
Oleg
ну ты можешь в home кинуть Navigator()
Adel Gilyazeev
Откуда мне его взять?
Adel Gilyazeev
Нигде контекста нету
Adel Gilyazeev
А если есть то значит уже лейаут (построение) происходит, и мы не можем в нём вызывать пуш
Adel Gilyazeev
Или можно как навигатор создать до runApp?
Adel Gilyazeev
А всё равно в WidgetApp надо настроить самый первый роутинг
Adel Gilyazeev
Не получится блин(
Oleg
сделать виджет, назвать его Myapp() вернуть его в home, у него из билда взять контекст
Oleg
если хочется совсем плясок то вернуть MaterialApp.router
Adel Gilyazeev
Так если из билда возьму контекст, значит он уже будет в процессе рисования
Oleg
и сделать ему routerDelegate
Adel Gilyazeev
А я хочу до
Adel Gilyazeev
Что он делает?
Adel Gilyazeev
Там можно задать чтобы сразу несколько роутеров было а истории?
Adel Gilyazeev
Ну вместо одного первого
Oleg
ну там ты можешь задать корневой роутер, дальше вкладывать свои уже вложенные
Adel Gilyazeev
Вот у меня так и происходит же
Adel Gilyazeev
В итоге корневой будет отрисован самым первым
Adel Gilyazeev
Как и у меня
Adel Gilyazeev
И только после этого запушить недостающие роуты
Adel Gilyazeev
Как и у меня
Adel Gilyazeev
Значит видимо по другому никак
Adel Gilyazeev
Кроме своей реализации навигатора)
Oleg
корневой у тебя будет Navigator со стеком из 3 страниц, который тебе отобразит последнюю
Adel Gilyazeev
Так ещё раз
Adel Gilyazeev
А то я смирился уже, а ты снова Надежду даёшь)
Adel Gilyazeev
Ещё желательно чтобы не было анимации перехода на второй и третий Пейдж в только что созданном роутинге
Adel Gilyazeev
То есть мне надо что-то типа initialHistory: newbee ? [Home, Create] : []; initialRoute: newbee ? Help : Home;
Oleg
Ну вот примерно такую конструкцию в навигатор и засунуть
Oleg
Просто придётся разурлить стек в зависимости от состояний
Adel Gilyazeev
Завтра гляну , надеюсь ты меня не обманываешь что так можно)
Oleg
Ну то что ты хочешь осуществить по-любому можно, вопрос подхода
Adel Gilyazeev
Так вот у меня уже осуществлено, но с задержкой в один кадр
Adel Gilyazeev
А надо чтобы до построения это самого кадра было
Adel Gilyazeev
Ну по любому то можно, я и говорю про свою реализацию навигатора)
Adel Gilyazeev
Только тогда и WidgetApp придётся переделывать, хотя я точно не знаю
Adel Gilyazeev
Я ещё никогда навигатор свой не пихал
Oleg
WidgetsApp(home:MyApp(child:Navigator())))
Oleg
В MyApp из билда возьмёшь контекст
Adel Gilyazeev
Так первым кадром MyApp отрусется
Adel Gilyazeev
Я же писал вроде
Oleg
Так а чем это помешает то?
Adel Gilyazeev
Тем что после и до первого кадра в навигаторе виджетаппа будет майапп
Adel Gilyazeev
А не три виджета
Oleg
Я видимо не совсем правильно объяснил, у тебя MyApp в роутинге участвовать не будет
Oleg
Ты страницы будешь менять внутри MyApp
Adel Gilyazeev
Ну я так понимаю это в нижнем навигаторе он не будет а во внешнем будет
Adel Gilyazeev
А кажется понял
Oleg
Представь их деревом
Adel Gilyazeev
Тогда это получается как это
Adel Gilyazeev
Ладно завтра гляну уточню)
Adel Gilyazeev
А то я сча буду на своём настаивать так и не глянув что там можно сделать
Oleg
MaterialApp -> MyApp -> Navigator | тут начинается роутинг
Oleg
опять же я мог тоже неправильно понять
Adel Gilyazeev
Да я понял схему)
Adel Gilyazeev
Вот поэтому мне надо глянуть на возможности дефолтного навигатора
picachuxa
Где ещё можно использовать Дарт по мимо разработки мобильных приложений
Вадим Резниченко
где угодно
Вадим Резниченко
но зачем?
Adel Gilyazeev
Дарт - веб, и всё что угодно что съест js (если не взаимодействовать с DOM (document/window)), любое консольное приложение почти под любые платформы, это обработка файлов, парсинг сайтов, сервер, http клиент ака curl, и всё такое
Adel Gilyazeev
Ну и конечно же ui через флаттер
Yakov K.
[
"Как заставить индикатор пермещаться по введенному во время чтения из командной строки через ",
{
"type": "code",
"text": "stdin.readLineSync"
},
" вместо отображения кодов \"",
{
"type": "code",
"text": "^[[C"
},
"\" \"",
{
"type": "code",
"text": "^[[D"
},
"\" стрелок?"
]
Adel Gilyazeev
Только через управление консолью
Adel Gilyazeev
А оно уже платформо зависимое
Adel Gilyazeev
Для винды вроде есть либа
Вадим Резниченко
[
{
"type": "link",
"text": "https://stackoverflow.com/questions/24900137/dartio-stdin-raw-character-codes"
},
" чекал?"
]
Adel Gilyazeev
Ещё есть ascii либа, но она вроде только умеет форматировать вывод, на счёт перемещения курсора не уверен, но тоже может быть (но очень сомневаюсь) и опять же, там зависит умеет ли консоль глотать управляющие символы из с stdout
Yakov K.
Ага, видел, но тут вроде только про считывание кодов
Adel Gilyazeev
Или что за индикатор?
Вадим Резниченко
так тебе и нужно их считывать
Adel Gilyazeev
Что означает "meh"?)
Yakov K.
Не только, и курсор еще двигать :)
Вадим Резниченко
[
"вот тут чел грит что у него все норм работает ",
{
"type": "link",
"text": "https://stackoverflow.com/questions/32081549/dart-move-cursor-in-command-line-app"
},
""
]
Adel Gilyazeev
Только из последних слов уловил суть, что это типа сокращений "ай, отстань")
Вадим Резниченко
а ты перед тем как задавать вопрос здесь гуглить не пробовал?
Вадим Резниченко
это же засоряет беседу
Adel Gilyazeev
А не ascii оказ, а ansi
Yakov K.
Спасибо, и правда!
Adel Gilyazeev
Ходить в браузер из за каждой не понятной мне фразы, ну такое... Не за компом всё таки... Постараюсь впредь не уточнять такое)
?iriu?
Народ помогите пожалуйста. Кто работал с потоками? У меня реализация чата. Стрим , Мне возвращает значение повторно. Как можно это исправить.
?iriu?
Я перепробовал все варианты о которых знал. Но без результата
Adel Gilyazeev
Не сувать туда по два раза? Не слушать в двух местах одновременно?
?iriu?
Нет. Каждый раз Возвращает значение дважды.
Adel Gilyazeev
А так необходим кусок кода и его контекст, где что работает не так как хочется, и где ты пытаешься сделать так как хочется
Adel Gilyazeev
Значит пихаешь туда значение по два раза)
Вадим Резниченко
слушать в двух местах одновременно можно только если там бродкаст. по дефолту его нет
Вадим Резниченко
как ты слушаешь поток?
Adel Gilyazeev
У меня не получалось в стримбиодер обычный поток кидать, а он там про чат заикался из за чего я думаю что это как то взаимосвязано
Вадим Резниченко
мб у него вообще нет стримбилдера. я например их вообще не использую
Adel Gilyazeev
Ну я лишь предположил
Вадим Резниченко
но стримами естественно пользуюсь
?iriu?
Народ хелп плиз! У меня такая странная ситуация. Пробовал гуглить нечего полезного не находил. Проблема в том что стрим при каждом обновлений возвращает мне одно и тоже значение дважды.
Adel Gilyazeev
Ну без них никуда, я понимаю)
?iriu?
Вот так я слушаю потока
Adel Gilyazeev
Хе хе) мои предложения кажется оправдываются
Вадим Резниченко
все таки бродкаст
?iriu?
Стримбилдером тоже пробовал такая же ситуация
Adel Gilyazeev
Виджет у тебя этот где? В каких местах монтируется? При демонтаже ты отписываешь прослушку?
?iriu?
Как ты решил тогда
Adel Gilyazeev
Подозрение на многократную прослушку
Adel Gilyazeev
В броадкаст обычный стрим переводил и слушал его
?iriu?
Может я неправильно делаю
|