Size: a a a

React Native — русскоговорящее сообщество

2020 January 25

ИС

Игорь Стрелов in React Native — русскоговорящее сообщество
С архитектурой очень туго у меня. Только более менее понял, как использовать контекст
источник

ИС

Игорь Стрелов in React Native — русскоговорящее сообщество
Учить реакт начал, когда появились хуки
источник

ИС

Игорь Стрелов in React Native — русскоговорящее сообщество
И поэтому редакс
источник

ИС

Игорь Стрелов in React Native — русскоговорящее сообщество
Не знаком
источник

ИС

Игорь Стрелов in React Native — русскоговорящее сообщество
Собственно и все приложение на функциональных компонентах
источник

GB

Gena Black in React Native — русскоговорящее сообщество
Игорь Стрелов
Собственно и все приложение на функциональных компонентах
Ну вот вы пытаетесь использовать библиотеку отображения, как фреймворк для всего приложения. Ну можно конечно, но будет больно
источник

GB

Gena Black in React Native — русскоговорящее сообщество
Вы можете выше навигатора в компоненте использовать useState и спускать вниз это хоз-во, если уж так хуки нравятся... но по моему это изврат...
источник

ИС

Игорь Стрелов in React Native — русскоговорящее сообщество
Даже пробовал передать в локальный пропс компонента вот таким путем : screen: {() => <List мой пропс="значение" />}
источник

GB

Gena Black in React Native — русскоговорящее сообщество
Игорь Стрелов
Даже пробовал передать в локальный пропс компонента вот таким путем : screen: {() => <List мой пропс="значение" />}
Так обновления сломаются
источник

ИС

Игорь Стрелов in React Native — русскоговорящее сообщество
Это работало, но пропс был одинаковый для всех пунктов меню
источник

ИС

Игорь Стрелов in React Native — русскоговорящее сообщество
Т.е. у всех пунктов - как у первого
источник

ИС

Игорь Стрелов in React Native — русскоговорящее сообщество
Gena Black
Вы можете выше навигатора в компоненте использовать useState и спускать вниз это хоз-во, если уж так хуки нравятся... но по моему это изврат...
Ну я не планировал через useState. Хочу попробывать через useContext
источник

ИС

Игорь Стрелов in React Native — русскоговорящее сообщество
Это мне кажется более правильно
источник

ИС

Игорь Стрелов in React Native — русскоговорящее сообщество
И лаконично
источник

GB

Gena Black in React Native — русскоговорящее сообщество
Игорь Стрелов
Это мне кажется более правильно
Более правильно завести модель в приложении. Что угодно, mobx, redux, свою с event emitter...

Её ещё и на диск кешировать надо. Вот собственно ваша проблема: вы дефолтный экран из дефолтного стека показали, а ваш дравер данные из сети ещё не подтянул, что у вас на экране? Откуда вы вообще знаете какой стек по умолчанию показывать, если пунктов меню ещё нет?
источник

GB

Gena Black in React Native — русскоговорящее сообщество
Это потому что дравер вообще не должен ничего фетчить. Он просто меню, показывает что в модели есть и команды в контроллер отправляет, всё. Выше свитч, который тоже ничего не фетчит, а просто показывает экран загрузки, если список меню пуст или дравер со стеками, если данные есть.
источник

GB

Gena Black in React Native — русскоговорящее сообщество
Контроллер при старте, переходе в активное состояние и по команде (пользователь список вниз свайпнул, к примеру) просто фетчит данные, парсит, валидирует и просто кладет в модель - всё.
источник

GB

Gena Black in React Native — русскоговорящее сообщество
В редакс, контроллер это акшны все (в том числе высокоуровневые типа танков и саг), модель - стейт. (Это так, конкретика, чтоб понятно было о чем я)
источник

ИС

Игорь Стрелов in React Native — русскоговорящее сообщество
Gena Black
Более правильно завести модель в приложении. Что угодно, mobx, redux, свою с event emitter...

Её ещё и на диск кешировать надо. Вот собственно ваша проблема: вы дефолтный экран из дефолтного стека показали, а ваш дравер данные из сети ещё не подтянул, что у вас на экране? Откуда вы вообще знаете какой стек по умолчанию показывать, если пунктов меню ещё нет?
Дровер показывается, только когда зафетчатся данные из сети. В дровере изначально лежит один пункт - настройки, так как дровер не инициализируется без скринов. Асинхронно загружается список пунктов и убирается индикатор загрузки
источник

ИС

Игорь Стрелов in React Native — русскоговорящее сообщество
Gena Black
В редакс, контроллер это акшны все (в том числе высокоуровневые типа танков и саг), модель - стейт. (Это так, конкретика, чтоб понятно было о чем я)
А если это представить в виде контекста, редьюсера
источник