
Алексей
08.08.2017
07:27:13

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

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

Алексей
08.08.2017
07:55:27

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

Google

ENAMETOOLONG
08.08.2017
08:24:53

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

ENAMETOOLONG
08.08.2017
08:26:00

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 ), то ты можешь захотеть пользоваться теми же преимуществами и с роутингом в приложении.
Вообще, если ты не знаешь зачем тебе нужен в роутинге редакс, это означает что он тебе просто не нужен. По сути, не всегда и сам редакс нужен.

Алексей
08.08.2017
08:29:31

dima
08.08.2017
08:30:41

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 });
}}
/>