
Dmitry
06.01.2017
10:39:30

Denis
06.01.2017
11:07:48

from
06.01.2017
12:02:59
https://docs.google.com/forms/d/e/1FAIpQLScC-xmCStwVmZu_Bh6zu1N_dUyGfEIcnbCkqnNfni1vbxcehQ/viewform

Ivan
06.01.2017
12:22:52
как инициализировать форму в Redux Form если action который получает данные для иницализации асинхронный, сначала рисуется форма, а потом только приходят данные

Google

Ivan
06.01.2017
12:22:54
?

KlonD90
06.01.2017
12:27:54
initialize использовать еще раз затем

Yumi
06.01.2017
12:45:02
let nextInvoked = false;
const next = () => nextInvoked = true;
В чем смысл таких манипуляций?

Maxim robox
06.01.2017
12:46:55
Передать дальше эту фунцию для манипуляции этой переменной?

Yumi
06.01.2017
12:49:41
А понял. Тупой вопрос задал.

Roman
06.01.2017
12:50:06
посмотри на action creator'ы у redux form
как инициализировать форму в Redux Form если action который получает данные для иницализации асинхронный, сначала рисуется форма, а потом только приходят данные
http://redux-form.com/6.4.3/docs/api/ActionCreators.md/

a
06.01.2017
12:51:33
over-engineering

Ivan
06.01.2017
13:01:25
initialize использовать еще раз затем
а можно диспатчить в action creator в котором загружаются данные. там как во всех учебниках, dispatch(request); axios.get(xxx).then(response => dispatch(success(response)) ВОТ ГДЕ-ТО ТУТ можно диспатчить?)

KlonD90
06.01.2017
13:02:11
ну вот initialize это подобное дерьмо
тоже action creators

Google

Name
06.01.2017
13:28:18

Nikita
06.01.2017
13:45:54
не тот чат :)

Ramin
06.01.2017
13:46:48

Dmitry
06.01.2017
14:35:45
@javascript_jobs

Ramin
06.01.2017
14:37:00

KlonD90
06.01.2017
14:38:04
over-engineering
а мне не хватате на самом деле ( ну это конечно в зависимости то что вы хотите. Мне нужна ModelForm типа

Ilya
06.01.2017
14:39:05
http://flexboxfroggy.com

Alexander
06.01.2017
16:58:02
Есть вопрос по Immutable Map и mergeIn/merge
Если мне приходи большой ответ от сервера с точки зрения уникальных ключей (порядка 100):
{
key1: {....},
key2: {....},
....
key100: {....}
}
И мне же приходит его обновленное состояние потом снова. Как лучше смержить предыдущее состояние и новое? Меня смущает то что merge делает новую Map и как следствие Реакт все перерисует что связанно с Map, так как ссылка на объект новая

Paruyr
06.01.2017
17:05:10
проще всего сделать shouldComponentUpdate

Alexander
06.01.2017
17:06:19
спасибо, думал об этом

Paruyr
06.01.2017
17:06:33
Можно еще сделать массив, где будут хранится изменения
Подгрузились какие-нибудь штучки с сервера - sCU смотрит в него и если есть что-то новое, то возвращает TRUE

Alexander
06.01.2017
18:15:18
кто подскажет, где в исходниках реакта есть работа c Immutable JS структурами?
меня интересует такой вопрос относительно shallowEqual
var a = new Immutable.Map({
numbers: new Immutable.Map({1: 1, 2: 2}),
letters: new Immutable.Map({a: 'a', b: 'b'}),
});
var b = a.mergeIn(['numbers'], Immutable.fromJS({3:3, 4:4}))
b.get('letters').equals(a.get('letters')) // true
реакт ничего не перерисует для letters?

Mikhail
06.01.2017
18:30:40
в исходниках реакта нет ничего про иммутабельные структуры данных, все управляется через shouldComponentUpdate, который по умолчанию возвращает true. Тебе надо переопределять его в своих компонентах, чтобы оптимизировать логику обновления в зависимости от твоих данных
https://facebook.github.io/react/docs/optimizing-performance.html#avoid-reconciliation

Google

Ҫѐҏӗѫӑ
06.01.2017
18:37:58
вообще есть, но не про иммутаблжс
виртуальный дом иммутабелен

Alexander
06.01.2017
18:49:53
@chicoxyzzy расскрой тему :)

sane
06.01.2017
18:55:46

Mikhail
06.01.2017
18:56:43
это не реакт )
но да, делает

sane
06.01.2017
18:57:26
Ну понятно, я к тому что чаще всего не надо руками scu делать

Alexander
06.01.2017
19:02:48
@sane_ecg PureComponent вроде как тоже идет с shallowEqual свойств
но это к слову, про Immutable понял

Danila
06.01.2017
19:31:30
господа, а есть тут шарящие в mobx? столкнулся с ситуацией, что reaction (render react-компонента) срабатывает не в следующем тике, а в текущем. из-за этого не могу сразу несколько изменений внести - рендер начинается сразу же после первого. никогда не сталкивались? я неправильно его готовлю?

Ҫѐҏӗѫӑ
06.01.2017
19:54:29
вроде дальше некуда

Alexander
06.01.2017
19:55:19
?

Ҫѐҏӗѫӑ
06.01.2017
19:55:50
нет, я могу объяснить если что-то непонятно, но мне не понятно что именно не понятно)

Alexander
06.01.2017
19:58:53
на самом деле меня инетерсует shallowEqual из коробки в реакте, где он есть кроме PureComponent :)

Danila
06.01.2017
20:09:45
неужели нет никого кто любит mobx?( ато чёт я совсем не могу нагуглить решение, а лезть в исходники mobx’а не хочется

Alexander
06.01.2017
20:10:12
я люблю, но на расстояние :) жду пока другие обкатают

Vladimir
06.01.2017
20:10:14
лучше слазий

Dreamerinnoise
06.01.2017
20:10:40

Danila
06.01.2017
20:11:39
на самом деле я в нём сам не так давно, пару недель, но 99% кейсов хорошо описаны в их доках и раньше проблем не возникало. это вот первая более-менее нетривиальная

Google

Dreamerinnoise
06.01.2017
20:11:55
я всегда в таких случаю сразу иду на гиттер mobx

Admin
ERROR: S client not available

Dreamerinnoise
06.01.2017
20:12:02
и спрашиваю у автора либы
не могу выговорить его имя
если делать dispose autorun/reaction то стор отваливается ок.
имеется в виду, что mobx об этом ничего не говорит, ну что и понятно. это мои личные проблемы, что я не освобождаю обсервер

Danila
06.01.2017
20:16:14
ммм, типа чтобы GC собирал все сторы, на которых не осталось референсов?

Dreamerinnoise
06.01.2017
20:17:04
ну вот так правильно
componentWillUnmount() {
this.store.dispose();
this.store = null;
}

Danila
06.01.2017
20:17:04
по идее при анмаунте авторан, который висит на render должен отваливаться сам по себе. если есть другие автораны - их надо вычищать руками
ммм, момент

Dreamerinnoise
06.01.2017
20:17:18
dispose() {
this.ticketReaction();
}

Danila
06.01.2017
20:17:19
видимо мы о разном
а нет, не о разном

Dreamerinnoise
06.01.2017
20:17:56
this.ticketReaction = reaction('blabla',() =>
this.appStore.isConnected,
connected => {
if (connected) {
blabla();
}
}
);
}
вот если я где-то этот момент проебал, то всё — висит стор в памяти

Danila
06.01.2017
20:21:58
а стор как в компонент передаёшь?

Dreamerinnoise
06.01.2017
20:22:24
Пробовал по разному

Danila
06.01.2017
20:23:01
просто если через inject - у тебя считай есть список всех сторов, и всех компонентов, которые их инъектят в себя
можно по willmount / willdismount считать кол-во референсов и вызывать в сторах dispose автоматически

Google

Danila
06.01.2017
20:23:50
немного изврат, но, кстати, не особо нагружающий архитектуру

Dreamerinnoise
06.01.2017
20:23:55
как Inject поможет?

Danila
06.01.2017
20:24:10
ну ты можешь сделать свою обёртку над inject

Dreamerinnoise
06.01.2017
20:24:33
store = new MyStore(AppState);
Typescript
это сразу в начале

Danila
06.01.2017
20:24:51
мммм
ты сторы как передёшь в компоненты? через Provider + @inject?

Dreamerinnoise
06.01.2017
20:25:13
нет
просто в компонент

Danila
06.01.2017
20:25:26
через props?