@reactnative_ru

Страница 263 из 878
Danil
08.08.2017
07:31:23
Забавно. Понял в чем проблема. У меня в стейте хранился массив, а я не сделал *.slice().

dima
08.08.2017
07:32:33
кароче. Капец

Maria
08.08.2017
07:32:51
proptypes можно вообще удалить

Google
Maria
08.08.2017
07:33:01
ты напиши конкретно, в чем тебе помочь

dima
08.08.2017
07:33:14
я не про то. Откуда диспатч? Где его передали?



Danil
08.08.2017
07:34:24
Так у тебя ругается на другое же, не на props.dispatch

dima
08.08.2017
07:34:26


а на чо ругается? Я не клацал ничего. И в пропсах нету пропс тайп

Maria
08.08.2017
07:34:58
dispatch там нужен только чтобы передать в строке 17 и берется, как я понимаю, из глобального стейта

dima
08.08.2017
07:35:06


ну вон 2 главных файла кинул. что не так? Все же нормально. редьюсер стандартный



Maria
08.08.2017
07:39:34
а покажи reducer nav

dima
08.08.2017
07:39:44


Google
Maria
08.08.2017
07:40:34
у тебя начального стейта нет

ща

вот так в примере: const initialState = AppNavigator.router.getStateForAction(AppNavigator.router.getActionForPathAndParams('Login')); const navReducer = (state = initialState, action) => { const nextState = AppNavigator.router.getStateForAction(action, state); // Simply return the original state if nextState is null or undefined. return nextState || state; }

dima
08.08.2017
07:41:14
а что тут делается?

Maria
08.08.2017
07:42:13
при запуске первом у тебя state у nav будет соответствовать экрану Login

т.е. вместо state = [] у тебя, нужно поставить state = initialState

dima
08.08.2017
07:44:52


Maria
08.08.2017
07:46:02
не надо ничего импортировать, просто как initialState бери nitialState = AppNavigator.router.getStateForAction(AppNavigator.router.getActionForPathAndParams(‘Stack’));

dima
08.08.2017
07:46:18
AppNavigator это откуда взять?

Maria
08.08.2017
07:47:24
а, ну да, его надо импортировать)

это твой Router, да

dima
08.08.2017
07:47:48
у меня дравер и стек. В дравере стек. Значит импортить дравер?

Maria
08.08.2017
07:48:38
я самый верхний навигатор везде для переходов использую

dima
08.08.2017
07:48:49
самый верхний это как

Maria
08.08.2017
07:49:02
дравер, да

самый верхний это как
в который все вкладываю

dima
08.08.2017
07:49:34


Maria
08.08.2017
07:50:52
Router используй свой

dima
08.08.2017
07:51:11
ошибки



Google
dima
08.08.2017
07:52:12


Danil
08.08.2017
07:52:31
Последняя проблема: mapStateToProps вызывается, render вызывается, но SectionList.renderItem не вызывается, так как (если я правильно понимаю) SectionList пропсы не меняются. Как правильно это сделать?

forceUpdate?

Алексей
08.08.2017
07:52:44
блин, создай https://snack.expo.io/, хватит спамить картинками

dima
08.08.2017
07:53:07
не хочу еxpo. Не смог создать

Алексей
08.08.2017
07:53:50
не хочу еxpo. Не смог создать
ну это уже твоя проблема. хватит спамить картинками. если хочешь чтобы помогли - создавай снек

Maria
08.08.2017
07:54:09
да, картинками прям гипер сложно понять

Danil
08.08.2017
07:56:37
Класс, спасибо

dima
08.08.2017
08:03:34
кароче. Трабла не решилась

ну что не так? Как должно быть?



а как кой толк от интеграции роута с редаксом? Что это дает?

?

ENAMETOOLONG
08.08.2017
08:19:39
?
А как у тебя роутинг описан?

dima
08.08.2017
08:20:13
всмысле как? Стек вложен в драйвер

ENAMETOOLONG
08.08.2017
08:22:12
всмысле как? Стек вложен в драйвер
Ну вот так тебе и помогут с твоим вопросом. Рекомендую скинуть гист с проблемным куском кода, что-бы кто-то посмотрел

dima
08.08.2017
08:22:38
Ну вот так тебе и помогут с твоим вопросом. Рекомендую скинуть гист с проблемным куском кода, что-бы кто-то посмотрел
я не пойму просто что должно получиться. Связать роутер и редакс. что это даст?

ENAMETOOLONG
08.08.2017
08:23:23
dima
08.08.2017
08:24:28
Single source of truth, logging, middlewares, time travel, redux dev tools
а понятнее можно. Я не спец в этом деле. Ну допустим связал с реактом. И что я могу сделать?

Google
dima
08.08.2017
08:25:05
Ты уже знаком с редаксом?
Да в вебе юзал. Стейт менеджер

Ты уже знаком с редаксом?
Но мне не ясна суть что он делает в роутере

я могу переходить юзая что то типа navigation.dispatch({ type: 'Login' })} ?

dima
08.08.2017
08:26:50
и это связывание нам это дало? + payload прокидывать? А раньше если без редакса я просто делал бы обычный переход? navigate('Profile', {name: 'Lucy'})?

ENAMETOOLONG
08.08.2017
08:27:36
Некоторые роутеры дают тебе синглтон для навигации, некоторые создают изолированный стор для навигации. Если ты релаишься на редаксе как централизованный источних данных ( https://rajdee.gitbooks.io/redux-in-russian/content/docs/introduction/ThreePrinciples.html ), то ты можешь захотеть пользоваться теми же преимуществами и с роутингом в приложении.

Вообще, если ты не знаешь зачем тебе нужен в роутинге редакс, это означает что он тебе просто не нужен. По сути, не всегда и сам редакс нужен.

ENAMETOOLONG
08.08.2017
08:33:55
ну юзнать же нужно? Вот когда он нужен?
Ну я отлично справлялся и в React и в React Native приложениях не юзая Redux. Преимущества это тестируемость, экосистема, коммьюнити, единый источник правды, девтулы, предсказуемый флоу, таймтревел при отладке, логированние событий, сохранение состояния в локальном хранилище на клиенте, синхронизация состояния приложения с сервером, и.т.д.

Вместе с этим еще такой же список "боли"

dima
08.08.2017
08:35:10
о. Я разобрался ????

например есть страница и там нужна авторизация. Я могу заделать dispatch и в нем проверить аторизацию. Если ок туда иначе туда. или залогировать. О удобно

правильно я понял?

ENAMETOOLONG
08.08.2017
08:36:19
да, отличный пример

dima
08.08.2017
08:36:51


ENAMETOOLONG
08.08.2017
08:37:08
+ еще с роутингом что ты роутинг держишь на уровне экшнов, а не как я который в компонентах писал роутинг, что не совсем солидно

dima
08.08.2017
08:37:15
т.е в общем тот же роутер + если нужно можно перейти диспатчем или просто навигатион.

так я тоже в компоненте

Google
dima
08.08.2017
08:37:36


или ты не об этом

ENAMETOOLONG
08.08.2017
08:38:06
Я про редуксовые экшны

Твои компоненты не завязываются на "конкретную" реализацию роутинга, если роутинг лежит в бизнес логике в редаксе

dima
08.08.2017
08:39:05


и заюзать через dispatch() ?



ENAMETOOLONG
08.08.2017
08:41:52
А оно будет работать?

я же не знаю что там в navigation.dispatch

dima
08.08.2017
08:43:18
работает. Это обычный диспатч из конекта

так и в доке

https://github.com/react-community/react-navigation/blob/master/examples/ReduxExample/src/components/LoginScreen.js 28 строка

его же вначале с помощью addNavigationHelpers прокинули

блин трабла D. Какого то если открываю меню то переходит на страницу по дефолту

https://github.com/react-community/react-navigation/blob/master/examples/ReduxExample/src/reducers/index.js 31 строка. чо выйдет ? почему у меня экран показывается со стрелкой? Он же главный



Rostyslav
08.08.2017
10:07:25
привет

подскажите

что не так делаю

<TextInput multiline = {true} // value={this.state.text} editable={editing} onChangeText={(value) => { this.setState({ text : value }); }} />

Страница 263 из 878