
Max
28.09.2017
11:51:43
Ребят, подскажите по логике, прочитал lifting-state-up, т.е. там просто поднимают состояние от ребёнка к родителю, а как передать состояние от одного родителя к другому?

Kyrylo
28.09.2017
11:52:33
зачем тебе поднимать состояние?
если нужно еще и шэрить его - то что не нужно поднимать

Max
28.09.2017
11:53:08
Мне его не нужно поднять, мне его нужно передать в другой

Google

Александр
28.09.2017
11:53:10
DanDanDan, привет, объясни поподробнее, плиз, что значит скриншотами?)

Max
28.09.2017
11:54:07
>Passing data between React components can be a little tricky at first (without using Redux that is), but once you practice these three techniques you’ll be able to pass data between whichever components you’d like.
маленький трюк, найс)

Иван
28.09.2017
11:58:09
Всем привет, есть вопрос, насколько хороша надо знать нативный js, для того что бы начать учить react?

Алексей
28.09.2017
11:59:37

Александр
28.09.2017
12:03:34
Привет, для изучения react крайне желательно знать ES6, а поскольку ES6 это в большей степени улучшенный ES5, то js учить надо)

Kyrylo
28.09.2017
12:04:12
крайне желательно > обязательно

Александр
28.09.2017
12:04:36
Ну есть по сути туториалы на ES5 для реакт, но крайне редко
крайне редко их можно встретить)

Kyrylo
28.09.2017
12:09:32
потому, что в них нет смыла?

Антон
28.09.2017
12:10:28
мне что то кажется что что уже не желательно, а обязательно
через 3 месяца 2018 год

Peter
28.09.2017
12:13:13
это и называется "lifting state up", типа вынос стейта на уровень вверх, чтобы с этого самого верхнего уровня можно было его передать твоим соседям

Google

Max
28.09.2017
12:14:59
навигацией

Peter
28.09.2017
12:15:37
Parent -> Child1, Child2, я правильно понимаю, что тебе из Child1 надо что-то передать в Child2?

Max
28.09.2017
12:16:01
да, наоборот только, но не суть, беда в том, что второй компонент не имеет родителя

Kyrylo
28.09.2017
12:16:10
как это? ?

Max
28.09.2017
12:16:13
его создаёт навигация как переход

Peter
28.09.2017
12:16:15
как это - не имеет родителя? оО

Kyrylo
28.09.2017
12:16:28
у всех есть родители

Max
28.09.2017
12:16:33
хз, сам пытаюсь понять

Kyrylo
28.09.2017
12:16:41
что за сироты в реакте
?

Max
28.09.2017
12:16:47
this.props.navigation.navigate('child2')
вот так открывается второй из первого

Kyrylo
28.09.2017
12:17:20
навигейшн родитель обоих

Max
28.09.2017
12:17:57

Peter
28.09.2017
12:18:09
либо навигейшн, либо компонента, которую в навигейшн прокидывают, чтобы та перерисовывала стейт, зависит от либы

Max
28.09.2017
12:18:52
А как слушать изменения?
в первом
если поменялся стейт навигации во втором

Peter
28.09.2017
12:19:29
вообще, конечно, примерно для этого придумали redux, но автор редакса (и я его поддерживаю в этом пункте) рекомендует не юзать редакс, прежде чем с реактом не разобрались))

Google

Max
28.09.2017
12:19:52
Вот и разбираюсь, но не фурычит)

Peter
28.09.2017
12:20:50

Max
28.09.2017
12:21:18
setParams - (helper) make changes to route's params
Ну как setState только для параметров, которые передаются
в роут

Peter
28.09.2017
12:21:46
т.е. параметров текущего роута?

Max
28.09.2017
12:22:09
да

Peter
28.09.2017
12:22:12
а если ты роутишь куда-то ещё, нельзя ли вторым параметром указать в том числе и новые параметры для нового роута?

Max
28.09.2017
12:22:39
а вот это я не понял

Peter
28.09.2017
12:22:54
что у тебя за либа для навигации используется?

Max
28.09.2017
12:23:00
https://reactnavigation.org/docs/navigators/navigation-prop
из доков

Peter
28.09.2017
12:24:31
ну вот, например: navigate - Link to other screens
Call this to link to another screen in your app. Takes the following arguments:
navigate(routeName, params, action)
routeName - A destination routeName that has been registered somewhere in the app's router
**params - Params to merge into the destination route**

Max
28.09.2017
12:25:51
Так всё передаётся вперёд хорошо, а как их назад то

Peter
28.09.2017
12:26:32
ну, видать, создатель этой либы посчитал, что назад с новыми параметрами нельзя ?

Max
28.09.2017
12:26:49
писос)
это же основы

Алексей
28.09.2017
12:29:24
по мне так это логично

Антон
28.09.2017
12:29:40
а почему вообще назад может быть с новыми параметрами?
тогда это не назад а назад в будущее с новым состоянием

Google

Алексей
28.09.2017
12:30:13

Max
28.09.2017
12:30:16
представь todo list, при нажатий открывается новый экран с редактированием, по кнопке возвращаемся назад с новыми todos

Алексей
28.09.2017
12:30:48

Антон
28.09.2017
12:31:02
ну да, это ж явно не назад

Peter
28.09.2017
12:31:15
ну да, это уже не параметры навигации, а отдельный стейт
это тебе грубо говоря надо прокидывать в нужный слайд какой-нибудь колбек addTodo, который этот слайд будет дёргать, и в котором уже будет добавление данных в какой-то отдельный "стор"

Albert
28.09.2017
12:33:11
Привет. Подскажите можно ли отменить сетевой запрос? Например при переходе с экрана на экран, если он не успел выполниться?

Peter
28.09.2017
12:34:53
в случае с fetch, вроде нельзя

Albert
28.09.2017
12:35:42
У меня Xhr

Alexey
28.09.2017
12:36:23

Вячеслав
28.09.2017
12:37:12

Albert
28.09.2017
12:38:02
Потому что меня надо очищать базу данных при выходе с приложения, но если данные не успеют прийти то будет корректное состояние бд, т.к. запросы асинхронные

Peter
28.09.2017
12:39:50

Вячеслав
28.09.2017
12:40:19
На сервере весь код исполнится в любом случае

Peter
28.09.2017
12:41:02
а, или база данных локальная, а не на серваке?

Albert
28.09.2017
12:41:18
локальная

Peter
28.09.2017
12:41:44
но вообще мне тоже больше импонирует идея с явной отменой запросов, чем просто игнорирование ответов сервера

Алексей
28.09.2017
12:42:29
в любом случае будет просто игнорирование

Alexey
28.09.2017
12:42:43
если запрос отменен в тот момент, когда до сервера уже дошел запрос, ответ тоже проигнорируется

Google

Алексей
28.09.2017
12:43:02
да даже если первый tcp пакет отправился то уже все

Alexey
28.09.2017
12:44:51
я вижу смысл отменять запрос, если ты загружаешь на сервер 10мб, но для обычных 1Кб запросов, я бы вообще не отменял
ушло и ушло, просто игноришь ответ и всё

Peter
28.09.2017
12:45:26

Alexey
28.09.2017
12:45:54
xhr.abort() просто закрывает TCP соединение и удаляет референс на xhr

Peter
28.09.2017
12:45:54
в любом случае запрос забивает некий пул соединений, который может быть не резиновым

Alexey
28.09.2017
12:46:07
он не отправляет на сервер команду "хей, серв, не выполняй запрос"

Peter
28.09.2017
12:46:54

Alexey
28.09.2017
12:48:39

Peter
28.09.2017
12:48:41
да и в тупую, сделать xhr.abort() проще, чем выставлять какие-то флаги, которые говорят "игнорируй ответы от xhr", особенно если тебе надо игнорировать не все ответы, а ответ от конкретного запроса =)

Alexey
28.09.2017
12:48:48
но я такого никогда не видел, честно говоря
может, опыта мало ¯\_(ツ)_/¯

Алексей
28.09.2017
12:49:04
не понял как это рвет соединение

Alexey
28.09.2017
12:49:24
ну xhr.abort убивает запрос
там в спеке есть

Алексей
28.09.2017
12:49:53
он просто tcp соккет же закрывает
как сервак то узнает что соединение закрыто

Alexey
28.09.2017
12:50:08
чем это отличается от закрытия соединения?

Алексей
28.09.2017
12:50:30