
Dmitry
13.02.2017
21:51:55
как?
У меня сейчас в проекте есть hoc, который чекает авторизацию и в зависимости от текущего статуса возвращает или null, или 404, или компонент изначальный

Vladimir
13.02.2017
21:51:56
constructor() {
this.state = { user: {} };
}
cDM () {
fetch().then(updateStateUser)
}
render() {
render (this.state.user)
? <xmp>{ this.state.user }</xmp>
: 'loading'
}

Dmitry
13.02.2017
21:52:32
Не претендую на бест практис, но работает

Andrew
13.02.2017
21:53:05

Google

Dmitry
13.02.2017
21:53:39
<Route path='/expert' component={Authentication(Expert, 'expert')} />
Что-то подобное

Andrew
13.02.2017
21:53:45
хммм

Ywein
13.02.2017
21:54:59
в реакт-роутере же есть onEnter функция, разве не удобнее ее использовать?

Vladimir
13.02.2017
21:55:17
тоже дело

Andrew
13.02.2017
21:55:29
ща гляну

Vladimir
13.02.2017
21:55:41

Dmitry
13.02.2017
21:56:03
Authentication смотрит на стор и ждет, когда там данные о юзере появятся + проверяет есть ли необходимые права у юзера и разруливает редиректы, для незалогиненных, если нужно.

Andrew
13.02.2017
21:56:14
просто я подумал типа не успело загрузить пользователя
выкинет меня на ошибку и все
у меня так на нескольких компонентах может быть
и при каждом разе делать запрос лишний

Google

Andrew
13.02.2017
21:57:39
на юзера

Ywein
13.02.2017
21:58:56
Зачем же каждый раз. Данные из стора берешь
Запрос на сервер делается только если в сторе нет данных

Andrew
13.02.2017
21:59:46
onEnter(nextState, replace, callback?)
мне надо "подождать" типа
Дмитрий получается самый норм варик предлагает
<Provider store={store}>
<Router history={browserHistory}>
<Route path="/" component={App}>
<IndexRoute component={Home}/>
</Route>
<Route path="/users/" component={App}>
<IndexRoute component={Users}/>
</Route>
<Route path="/auth/" component={App}>
<IndexRoute component={Auth}/>
<Route path='success/' component={Auth}/>
</Route>
<Route path="/profile/" component={App}>
<IndexRoute component={Profile}/>
<Route path=':user/' component={Profile}/>
</Route>
</Router>
</Provider>
App - делает запрос

Adel
13.02.2017
22:01:34

Pavel
13.02.2017
22:01:45
привет всем еще раз. если используете duck modules с redux и reselect, то где обычно селекторы храните? в модулях или отдельно с доступом от корня стейта?

Dmitry
13.02.2017
22:01:53
Да, вместо null можно что угодно рисовать

Ywein
13.02.2017
22:02:18
У меня флоу обычно такой
1) Открывается приложение.
2) Функция onEnter. В сторе нет данных.
3) Чекаем если есть токен в локалСторадж
4) Предположим, что есть, так как флоу интересней
5) Переходим на компонент со спиннером
6) Запрос к серверу на валидацию токена
7) По завершению запроса - возвращаемся где были, если валидация пройдена, либо на логин, если не пройдена

Adel
13.02.2017
22:02:19

Pavel
13.02.2017
22:02:46
В модулях щас
то есть всегда есть 1 селектор на получение конкретного модуля внутри стейта? в самом модуле
ну, куска стейта точнее

Andrew
13.02.2017
22:03:37

Ywein
13.02.2017
22:05:27
у меня селектор внутри контейнера. я честно скопировал предложенную в стартер-паке архитектуру

Pavel
13.02.2017
22:06:33
пытаюсь выяснить что менее коряво - передавать в селектор путь до стейта модуля или объявлять дополнительный селектор в модуле

Ywein
13.02.2017
22:07:42
но у селектора и так доступ ко всему стейту есть, это ж редакс.

Google

Ywein
13.02.2017
22:08:01
зачем дополнительный селектор

Pavel
13.02.2017
22:08:01
есть, но смысл в модулях которые знают о том что есть другие

Ywein
13.02.2017
22:08:33
селекторы не реюзабельны
ты не можешь один и тот же селектор в нескольких компонентах использовать, оно так не работает

Pavel
13.02.2017
22:14:04
не до конца проработано но суть ясна

Ywein
13.02.2017
22:16:21
я честно говоря вообще не понял зачем это нужно (

Pavel
13.02.2017
22:17:04
короче первый вариант думаю правильнее

Vasiliy
13.02.2017
22:27:09
я как-то вообще вот так стал писать:
selectors.denormalize('foos', [schemas.foos], filter(...)),
selectors.denormalize('bars', [schemas.bars], take(10)),
не знаю, понятно ли что это такое)

Regina
13.02.2017
22:45:18
ребят, помогите разобраться на уровне концепции.
Есть простое приложение посты, комментарии. И у постов, и у комментов есть лайки.
Создаю 3 компонента: Post, Comment, Like.
По умолчанию Like получает кол-во лайков через props от родительских Post и Comment.
По клику на Like нужно увеличивать/уменшать значение, передавать родителю и сохранять в базу.
Вопрос: где должен задаваться state компонента Like?

Vladimir
13.02.2017
22:46:44
в сторе?
плюс оптимистичные апдейты

Regina
13.02.2017
22:47:16
создавать для Like отдельный стор?
или в сторах Post & Comment

Vladimir
13.02.2017
22:47:33
стор для аппа

Regina
13.02.2017
22:48:07
ок, но допустим что приложение вообще глупое, без сторов, без записи в БД
вопрос концептуальный, повторюсь :)
по логике интерфейса кажется что сам компонент Like должен отвечать за свое состояние (кликали/ не кликали)
но при этом возникает вопрос, как передать родителю новое значение

Ywein
13.02.2017
22:53:44
по логике у тебя должен быть менеджер стора в духе редакса или мобx.
дальше у тебя есть сущность - пост.
в сторе приложения должен хранится массив постов.
когда ты нажимаешь на лайк - он делает диспатч, который обновляет массив постов в сторе, увеличивая количество лайков на 1 у текущего поста и отмечает что текущий пост уже лайкнут.

Google

Ywein
13.02.2017
22:54:36
сам компонент не должен хранить это в себе, т.к. явно данные приложения.

Regina
13.02.2017
22:55:35
Т.е. Like должен быть глупым компонентом, отображающим только данные получаемые через props

Ywein
13.02.2017
22:55:51
да

Regina
13.02.2017
22:56:10
Да, похоже на правду :)
Спасибо!
Проблема была в понимании кому принадлежат state

Ҫѐҏӗѫӑ
14.02.2017
00:42:47
https://github.com/bvaughn/react-virtualized/pull/577

Yaroslav
14.02.2017
01:00:57
Redux же определенно связан с React?

Admin
ERROR: S client not available

KlonD90
14.02.2017
01:01:19
Неа

Vladimir
14.02.2017
01:09:53
Есть биндинги и к ангуляру

Yaroslav
14.02.2017
01:24:49
Понятно, пасиб ?

Джон
14.02.2017
02:00:32
ребят, кто-то юзал fastclick?
пробую его включить, билдю apk через кордову, разницы никакой
все равно задержка..

Yumi
14.02.2017
02:56:50

Джон
14.02.2017
02:57:23
пасиб, я правда на обычном реакте делаю..

Дмитрий
14.02.2017
03:01:00
Смелый, самоотверженный человек))

Джон
14.02.2017
03:01:26
вебвью это плохо?

Google

Arseniy
14.02.2017
03:14:06

Джон
14.02.2017
03:14:27
уже смотрю на реакт нейтив..

Arseniy
14.02.2017
03:14:57
очень советую, производительность на мобилках это особенно важная штука

Джон
14.02.2017
03:17:00
ок понял, спасибо

yep
14.02.2017
05:53:13
как там назывался канал для react native?

Джон
14.02.2017
07:02:13
видимо телефон такой

Ches
14.02.2017
07:33:36
правильно ли делать такой стор в редьюсере?
const initialState = {
registration: {
isLoading: false,
data: null,
error: null
},
registrationCode: {
isLoading: false,
data: null,
error: null
},
login: {
isLoading: false,
data: null,
error: null
},
forgotPassword: {
isLoading: false,
data: null,
error: null
}
};

Сергей
14.02.2017
07:40:58
явно можно разделить на 4 стора отдельных
и скомбайнить их

Ches
14.02.2017
07:51:49

Сергей
14.02.2017
07:52:51
не понял(
для обновления стора можно использовать https://facebook.github.io/react/docs/update.html

Dmitry
14.02.2017
07:56:58

Brs
14.02.2017
08:02:45
@iamstarkov, что почитать чтобы проникнуться styled components? readme на гитхабе какое-то неубедительное

Vladimir
14.02.2017
08:02:59
не знаю
я их и не советовал никогда
наоборот не советую

Mikhail
14.02.2017
08:05:14
Вроде как многообещающая вещь