
Artur
13.02.2017
14:38:02
Какие проблемы были?)
Явных не припомню. Все они были связаны в основном с появлением в объектах ранее несуществующих свойств. ну типа:
import {observable} from "mobx"
const store = observable({
prop1: true
})
// потом где то рендерим:
render() {
if (this.props.store.prop2) // тут обращаемся к отсутствующему свойству
}
Вот если потом в сторе появится prop2 то компонент не перерисуется

Алексей
13.02.2017
14:38:16

Denis
13.02.2017
14:38:18
Артур, может быть вообще доклад для следующего React Moscow Meetup подготовишь?

Artur
13.02.2017
14:39:11
В принципе если вот это внимательно изучить: https://mobxjs.github.io/mobx/best/react.html то проблем не будет

Google


Vladimir
13.02.2017
14:39:18
import {CyberObjectInstance} from "../../Models/BasicTypes/CyberObjectInstance";
import {Predicate, and} from "./CyberObjectsStore";
import {observable} from "mobx";
export class Store<T extends CyberObjectInstance> {
@observable objects: Array<T> = [];
addObject(object: T): void {
this.objects.push(object);
}
deleteObject(object: T): void {
let index = this.findIndexByUUID(object.uuid);
if (index > -1)
this.objects.splice(index, 1);
}
find(conditions: Array<Predicate<T>>): T|undefined {
let worker = this.objects.find(and(conditions));
if (worker) {
return worker;
} else {
return undefined;
}
}
findByUUID(uuid: string): T|undefined {
return this.find([(object: T) => object.uuid == uuid]);
}
findIndex(conditions: Array<Predicate<T>>): number {
return this.objects.findIndex(and(conditions));
}
findIndexByUUID(uuid: string): number {
return this.findIndex([(object: T) => object.uuid == uuid]);
}
filter(conditions: Array<Predicate<T>>): Array<T> {
return this.objects.filter(and(conditions));
}
}
пример репозитория на mobx+ts


Artur
13.02.2017
14:40:13
Мобх может в кашу превратиться
Может, но дело же не в библиотеке, а в программисте. Он очень opinionless, то есть "пиши как хочешь". Достаточно выработать правила, можно почерпнуть из того же redux, из статьи "Lifting state up" документации реакта, чтобы было хорошо

Vladimir
13.02.2017
14:41:02

Dreamerinnoise
13.02.2017
14:42:45
mobx-state-tree

Pavel
13.02.2017
14:42:48
блин, только сейчас понял, что react это view, redux/mobx это модель, actions это контроллер

Dreamerinnoise
13.02.2017
14:42:50
пожалуйста, вот вам рамки :D

Mike
13.02.2017
14:43:25
ну так себе классификация
учитывая что экшны скорее часть флаксов
а не отдельно от них

Artur
13.02.2017
14:43:51

Mike
13.02.2017
14:43:57
скорее redux store это модель

Google

Artur
13.02.2017
14:44:04
Кстати у mobx (впрочем как и у redux) очень хороший мейнтейнер. Вежливый, всё объясняет, активно принимает PR вот это всё

Vladimir
13.02.2017
15:00:21
Это же можно сделать и во всех остальных, но там это происходит автоматически, если блок завязан на получение информации

Pavel
13.02.2017
15:10:22
lodash же еще модно использовать?

Mike
13.02.2017
15:10:56
ну так
хз конечно
но на моем информационном фоне скорее постепенно все меньше

Сергей
13.02.2017
15:11:17

Mike
13.02.2017
15:11:19
ну и в целом es6 — не es5
рамда модно примерно только в этом чатике лол

Arsen
13.02.2017
15:11:33

Сергей
13.02.2017
15:12:32

Pavel
13.02.2017
15:12:41
о, es6 утащили из lodash все

Сергей
13.02.2017
15:13:00
из coffe много

Mike
13.02.2017
15:13:24
es6 еще и из питона и шарпов поутаскивал
а уж из тайпскрипта-то

Vladimir
13.02.2017
15:13:35
а TS вообще все лучшее собрал :D

Mike
13.02.2017
15:13:36
зато мб чет нормальное соберут

Сергей
13.02.2017
15:14:01

Google

Vladimir
13.02.2017
15:14:11

Сергей
13.02.2017
15:14:18

Алексей
13.02.2017
15:16:38

Vladimir
13.02.2017
15:17:06
ты еще статью про рендер в воркерах должен

Andrey
13.02.2017
15:17:25
посоны кто юзит XO для кодестайла? (это то что от синдры)
как разрешить прибиндивание через :: ?

Vladimir
13.02.2017
15:17:29
я её уже две недели жду :D

Алексей
13.02.2017
15:18:05

Artur
13.02.2017
15:18:24
Для себя решил эту проблему доп компиляцией бабелем

Mike
13.02.2017
15:19:35
а чем тебя не устраивает target у ts?

Artur
13.02.2017
15:21:01
Он не поддерживает итерацию через iterator protocol если target < es2015

Alexander
13.02.2017
15:21:06

Dmitry
13.02.2017
15:45:06
apollo рекомендую, по ощущением кода на порядок меньше чем с redux + кеширование, батчинг запросов и пр.

Vladimir
13.02.2017
15:58:29

Dmitry
13.02.2017
15:59:18
ой)
А какие именно?) ШРИ какого года?

Vladimir
13.02.2017
15:59:41
Да любого:)

Dmitry
13.02.2017
16:00:58
ну мне сложно за всю Одессу, но по тем лекциям, что я читал, вот тут задачи https://github.com/DimitryDushkin/shri-2016-css-js Плюс можно в форках глянуть, что делали студенты (там довольно прикольно по JS, но надо строго с мобильника их смотреть)

Andrey
13.02.2017
16:34:59
пасаны, подскажите где отключить еслинт-правило для бинда двумя двоеточиями ?

Vladimir
13.02.2017
16:39:22
найти имя правла

Google

Vladimir
13.02.2017
16:39:27
выключить в конфиге

Mike
13.02.2017
16:41:42
Увидеть имя в консоли
Когда линтер падает

Andrey
13.02.2017
16:42:44

Ҫѐҏӗѫӑ
13.02.2017
16:45:24
потому что еслинтовский парсер (espree) этого не умеет
https://github.com/babel/babel-eslint

Vladimir
13.02.2017
16:46:08

Admin
ERROR: S client not available

Ҫѐҏӗѫӑ
13.02.2017
16:46:34
0

Vladimir
13.02.2017
16:51:41
Тем более

Pavel
13.02.2017
17:20:52
ребят, как решаете проблему когда в приложении очень много модальных окон?

Sheridan
13.02.2017
17:21:20
С архитектурой что-то не так. Надо пересмотреть

Andrey
13.02.2017
17:26:53

Vladimir
13.02.2017
17:27:31

Andrey
13.02.2017
17:27:33

Ҫѐҏӗѫӑ
13.02.2017
17:27:56
и в общем-то я с ними солидарен

Pavel
13.02.2017
17:28:52
Побить дизайнера
уточню, модалки не одна за другой вызываются. есть дэшборды, которые имеют ряд возможностей, каждая из которых провоцирует появление модалки, в которой разные сложные формы и совершенно разная логика

Vasiliy
13.02.2017
17:28:59
да, модальные контексты это не оч хоршо

Google

Ҫѐҏӗѫӑ
13.02.2017
17:29:00
хотя все равно кое-где есть модалочки
модалок со сложными формами не должно быть

Pavel
13.02.2017
17:31:10
все сущности создавать на отдельных страницах?

Nikolay
13.02.2017
17:31:57
вообще считаю модалки антипаттерном

Pavel
13.02.2017
17:32:41
а какие альтернативы? ну т.е. пример использования модалки, когда можно обойтись без нее, и что взамен?

Mikhail
13.02.2017
17:34:18
есть одна проблема, если есть одна модалка, то теоретически есть сабмодалка, и так далее…
и это никак не решить, ИМХО

Victor
13.02.2017
17:35:00

Mikhail
13.02.2017
17:37:51
решение думаю только одно - найти UI/UX решение без модалок, и как показвает практика - оно всегда находится

Алексей
13.02.2017
17:40:00
имхо странно искать другое решение просто потому что модалки не нравятся

Mikhail
13.02.2017
17:41:06
«не нравяться» не совсем то, это просто не удобно

Pavel
13.02.2017
17:41:28
кейсов пока так и нет(

Vasiliy
13.02.2017
17:41:37
у раскина вроде написано много про контексты/режимы/модалки
но она старая, я как-то начинал читать давно, не осилил

Алексей
13.02.2017
17:42:26
вполне удобно если использовать по назначению - акцентировать внимание юзера на каком то действии

Andrey
13.02.2017
17:49:31
да они повсюду в интирнетах. Дизайнеры это видят и рисуют так чтоб не отставать от трендов. :)
а гиморой с модалками может быть в том, что на все инпуты а также теги A AREA OBJECT SVG и кроме тех что в модалке надо вешать tabindex=-1 , чтобы до них нельзя было табом переместиться.. — это конечно оверхедное решение для реактов. Но вот жыкверь с таким хорошо справлялось )

Mikhail
13.02.2017
17:52:48
один из способов избаления от модалок это затавить пользователя сделать больше действий (кликов или других дейтсвий), чтобы было «неудобно» и он задумался
если речь идет об опасных действиях, типа удаления и прочего, сори за офтоп

Dmitry
13.02.2017
18:05:25

Vladimir
13.02.2017
18:11:32