Daniil
Не верю, покажи код
где вы вчера были
Артем
ребят у нативных хедеров есть ли какие-нибудь приемущества над кастомными хедерами?(react-navigation)
Артем
у меня в хедере достаточно много логики, если через стандартные делать то геморно не много получается, удобнее кастомный компонент для хедера будет сделать
Anton
ребят у нативных хедеров есть ли какие-нибудь приемущества над кастомными хедерами?(react-navigation)
Они нативные для платформ получаются Кастомные везде одинаковы
Daniil
Спасибо
Artem
Ребята всем привет. Что можете посоветовать для редактирования аудио дорожек?
Timur 👨‍💻
В RN относительно недавно, подскажите плиз, приложение начало иногда вылетать и выкидывать ошибку о неожиданном сбое приложения, в консоли все тихо, где можно логи посмотреть?)
Alexey
RN remote debug можно включить или же через react-native-debugger
Aset
Все привет. Подскажите как можно изменить внешний вид самого уведомления (expo push notifications) к примеру убрать иконку Экспо с уведомления
Aset
Expo
Dimitrii
Парни, хелп. Когда сварачиваю приложение на андройд, то после открытия состояние навигации слетает. На иос все гуд с этим. Использую. react-navigation. Кто-то сталкивался? Есть варианты решения?
Dimitrii
Rn и r-navigation каких версий?
"react-navigation": "^3.9.1", "react-native": "0.59.5",
Anonymous
"react-navigation": "^3.9.1", "react-native": "0.59.5",
Проверь все ли доп либы залинкованы правильно, особенно под андроид.
Dimitrii
Daniil
Добрый вечер, запрос работает на эмуляторе аайфона, но не работает на эмуляторе андройда, что не так?
Maksym
Народ, привет. Как можно реализовать что бы когда есть горизонтальный и вертикальный скролл что больше за экран - и когда в нем кликаешь по кнопке - то кнопка стает по середине экрата телефона?
🔥
ребята а кто что использует для image zoom?
Anton
ребята а кто что использует для image zoom?
reanimated Там есть семпл с зумом
Игорь
Ребятки. Весь мозг сломал. Как при инициализации передать с дровера в стэк навигатор пропсы? Есть какая то функция, которая при инициализации навигатора запускается? По onPress на пункт меню сделал, но при старте пропсы естевственно пустые, так как нажатия не было
Игорь
через родителя - навигатора, как вариант Там извращение выйдет. Но лучше решения не нашел
Хм, а по подробнее? У меня родитель - дроверь, все его пункты - это стэки. Проблема - как в дровере при инициализации, передать данные в инитиалСкрин
Tuum Daemonia
если нужен уровень выше - можно получить родителя
Игорь
Ну так это получу я так пропсы
Игорь
А передать то как?
Tuum Daemonia
Ну так это получу я так пропсы
а стоп, ты так хочешь Похоже, я тебя не совсем понял Тут вариант либо писать в пропсы дровера, а оттуда получать. Либо делать отдельным компонентом дровер, а с него уже передавать нормальным способом
Игорь
Смотри) есть дровер - >стэк-навигатор->компонент Когда запускается приложение, фетчится список пунктов меню дровера. При клике на пункт - данные передаются в стэк. Но если нажатия не было, то просто открывается стэк
Игорь
И пропсы пустые
Vitaliy
Смотри) есть дровер - >стэк-навигатор->компонент Когда запускается приложение, фетчится список пунктов меню дровера. При клике на пункт - данные передаются в стэк. Но если нажатия не было, то просто открывается стэк
привет. можешь на https://snack.expo.io/ накидать минимально необходимый пример как у тебя реализовано? по-моему где-то в логике затык, и придется что-то сделать по-другому.
Vitaliy
И пропсы пустые
у стэка ещё как минимум есть initialRouteParams, можно их использовать. Но это именно конфигурация stack navigator а не drawer.
Vitaliy
Вот такого аналогичного нет у дровера?
в доке не находил, хотя в какой-то из версий был, есть даже issue на это. в исходниках drawer navigator надо посмотреть, возможно и есть.
Игорь
https://github.com/react-navigation/drawer/commit/22491e15e9b0994bb96101bfec82d8c4d1928aae
Игорь
Действительно нашел коммит
Игорь
Спасибо большое, пошел чекать
Игорь
Печаль. Нет этого пропса
Игорь
Попробую через контекст повешать в стейт переменную, а уже по клику дровера ее менять
Gena
Попробую через контекст повешать в стейт переменную, а уже по клику дровера ее менять
Наконец то, в правильную сторону мысль. Но с неправильной реализацией. Очевидно, что эти ваши пропсы - состояние модели приложения, вот там они и должны лежать )
Gena
И это повод завести модель, если её ещё нет
Игорь
В общих чертах - есть один компонент, который ветчит списки различного контента (новости, видео, фото альбомы и т д) разница только в url(подставляется название типа контента - news, video, blog, photo. Этот компонент лежит в стэке, так как необходимо переходить из списка в саму запись. И стжк этот лежит в дровере (каждый пункт дровера переходит на этот стэк). Так вот логика была в том, что нужно спарсить список айтемов дровера и для каждого передать необходимый пропс, который уже в компоненте, выводящем список будет подставлен в урл
Игорь
С архитектурой очень туго у меня. Только более менее понял, как использовать контекст
Игорь
Учить реакт начал, когда появились хуки
Игорь
И поэтому редакс
Игорь
Не знаком
Игорь
Собственно и все приложение на функциональных компонентах
Gena
Собственно и все приложение на функциональных компонентах
Ну вот вы пытаетесь использовать библиотеку отображения, как фреймворк для всего приложения. Ну можно конечно, но будет больно
Gena
Вы можете выше навигатора в компоненте использовать useState и спускать вниз это хоз-во, если уж так хуки нравятся... но по моему это изврат...
Игорь
Даже пробовал передать в локальный пропс компонента вот таким путем : screen: {() => <List мой пропс="значение" />}
Игорь
Это работало, но пропс был одинаковый для всех пунктов меню
Игорь
Т.е. у всех пунктов - как у первого
Игорь
Это мне кажется более правильно
Игорь
И лаконично
Gena
Это мне кажется более правильно
Более правильно завести модель в приложении. Что угодно, mobx, redux, свою с event emitter... Её ещё и на диск кешировать надо. Вот собственно ваша проблема: вы дефолтный экран из дефолтного стека показали, а ваш дравер данные из сети ещё не подтянул, что у вас на экране? Откуда вы вообще знаете какой стек по умолчанию показывать, если пунктов меню ещё нет?
Gena
Это потому что дравер вообще не должен ничего фетчить. Он просто меню, показывает что в модели есть и команды в контроллер отправляет, всё. Выше свитч, который тоже ничего не фетчит, а просто показывает экран загрузки, если список меню пуст или дравер со стеками, если данные есть.
Gena
Контроллер при старте, переходе в активное состояние и по команде (пользователь список вниз свайпнул, к примеру) просто фетчит данные, парсит, валидирует и просто кладет в модель - всё.
Gena
В редакс, контроллер это акшны все (в том числе высокоуровневые типа танков и саг), модель - стейт. (Это так, конкретика, чтоб понятно было о чем я)
Игорь
Более правильно завести модель в приложении. Что угодно, mobx, redux, свою с event emitter... Её ещё и на диск кешировать надо. Вот собственно ваша проблема: вы дефолтный экран из дефолтного стека показали, а ваш дравер данные из сети ещё не подтянул, что у вас на экране? Откуда вы вообще знаете какой стек по умолчанию показывать, если пунктов меню ещё нет?
Дровер показывается, только когда зафетчатся данные из сети. В дровере изначально лежит один пункт - настройки, так как дровер не инициализируется без скринов. Асинхронно загружается список пунктов и убирается индикатор загрузки
Игорь
Ведь редакс практически такую же структуру имеет?
Игорь
Я просто в арзитектурах ноль
Игорь
В пхп еще более менее представляю
Игорь
А здесь немного хромает представление о моделе, контроллерах
Игорь
Ну в целом получается контроллеры это редьюсер
Игорь
А модель это стейт
Игорь
Если говорить о хуках
Gena
Ну в целом получается контроллеры это редьюсер
В редьюсере уже поздно делать некоторые вещи, за которые должен отвечать контроллер - он синхронный и чистый. Как следствие эти вещи уезжают в компоненты, которые вью слой по хорошему. Это потом приводит к дублированию кода и невозможности тестировать логику.