
Семен
13.09.2016
03:03:15
Пацаны, чем формы валидируете?)

Victor
13.09.2016
05:11:06

Сашка
13.09.2016
05:38:12
tcomb c flow-синтаксисом
Если валидация текстовых полей - то тупо по регекспу.

Google

Alexey
13.09.2016
06:40:57
«Based on set theory», — это сильно

Дмитрий
13.09.2016
06:54:08
Хм, а интересная штука

Alexey
13.09.2016
06:56:11
ну так то да )

Дмитрий
13.09.2016
07:00:01
По сути это просто обозначает с понтом обставленную реализацию Dict, Union, Enum и прочего)

Roman
13.09.2016
07:52:54

Max
13.09.2016
08:30:24
Ребят совет нужен. Рендерю компоненты исходя из данных массива, то есть мапаю и рендерю. В этом же главном компоненте есть функция с фетчем, которая прокидывается в каждый дочерний. Не пойму как мне прокинуть теперь ответ от сервера в нужный компонент.

Dmitry
13.09.2016
08:32:01
Колбэком или промис возвращай

Vladimir
13.09.2016
08:33:12

Max
13.09.2016
08:37:42

Vladimir
13.09.2016
08:38:25
тогда каждому компоненту в пропсы придёт функция возвращающая промис, вот и значение
иначе я не понял твою проблему

Max
13.09.2016
08:39:17
фетч в отдельной функции. В дочерние компоненты рендерится коллбэк который вызывается при клике

Google

Max
13.09.2016
08:39:33
коллбэк на фетч естесна
дальше после того как фетч отработает, нужно вернуть ответ тому дочернему компоненту, который вызвал этот фетч

Vladimir
13.09.2016
08:40:40
а почему компоненты сами по себе не могут фетчить?

Dmitry
13.09.2016
08:42:14
В родителе
fetch = options => this.props.fetchData(options);
<ListItem fetch={this.fetch} />
В дочернем
fetch = () => this.props.fetch(itemSpecificOptions)
.then(response => { /*do smt*/ });

Max
13.09.2016
08:42:30

Vladimir
13.09.2016
08:43:34

Max
13.09.2016
08:48:20
сейчас попробую

Ҫѐҏӗѫӑ
13.09.2016
09:22:52
внезапно https://github.com/tc39/proposal-private-fields/issues/32#issuecomment-237122379
это ко вчерашнему babel-plugin-legacy-decorators ?

Andrey
13.09.2016
09:24:36
babel-plugin-legacy-symbol

Vladimir
13.09.2016
09:24:40
так
а почему слово private не конски?
private x;
ой там даже faq есть

Ҫѐҏӗѫӑ
13.09.2016
09:27:20
про это есть отдельная ишью
чот я дочитал и тоже за свап теперь

Safort
13.09.2016
09:35:49
Типа:
- Посоны, мы тут подумали, давайте декораторы теперь # обозначать!
- Зачем?
- Прост))0)

Ҫѐҏӗѫӑ
13.09.2016
09:36:08
да нет, не прост
все очень логично

Google

Anton
13.09.2016
09:37:40
ну так объясни вкратце

Malgalad
13.09.2016
09:37:44
TLDR: чтобы когда ты пишешь this.field было понятно, field приватное или нет (ты не можешь написать "this.private field"), и чтобы не было коллизий, когда ты делаешь obj.field = a; а у него уже есть приватный field - но ты о нём не знал ибо он приватный.
^ к вопросу почему не private x;

Vladimir
13.09.2016
09:46:13
а вот ситуация
я делаю
class A{
db = null;
}
потом где-то в коде
new A().db=new DB();
а потом я решаю такой, что это поле должно быть приватным и устанавливаться через сеттер setDb().
в случае с собакой я переименовываю это поле в @db, и код new A().db продолжает выполнятся без ошибки, но делает НЕ ТО. В случае с идентификатором private и тем же названием переменной, скрипт упадет намного раньше и сигнализирует об ошибке правильным способом.
вообще выйдет, что @a и a - это разные поля, это довольно error-prone.

German
13.09.2016
10:57:22
Ребят как правильно присвоить данные переменной что я замапил из массива?
Object.keys(this.state.data).forEach(dataType => {
this.state.data[dataType].map(dataItem => (
<div>{dataItem}</div>
));
});

Malgalad
13.09.2016
11:08:53
скорее
`Object.keys(data).map(type =>
data[type].map(item => (
<div>{item}</div>
))
).concat()
`
forEach не возвращает ничего, а если его заменить на map, был бы массив массивов, так что надо ещё в конце concat....
или наоборот, [].concat(.../* code */). И да, нужен проп key.

Dmitry
13.09.2016
11:15:09
Шта? Если я правильно понял, и ты хочешь в хэше для каждого ключа превратить массив переменных (строк например) в массив дивов, то
Object.keys(this.state.data).reduce((memo, dataType) => ({
...memo,
[dataType]: this.state.data[dataType].map(dataItem => <div>{dataItem}</div>)
}), {});

German
13.09.2016
11:21:47
const renderData = () => {
const data = Object.keys(this.state.data).map(dataType => (
this.state.data[dataType].map(dataItem => (
<div>{dataItem}</div>
))
));
return data;
};
вот так работает
Есть массив, в котором лежат объекты, ключи я не знаю. Мне нужно вытащить определенные данные из этих объектов. Получив в конце массив с html элементами с этими данными.

Vadim
13.09.2016
11:31:07
А с датой по митапу определились? Не могу найти нигде)

Anton
13.09.2016
11:32:09
Пожалуйста, подскажите, есть ли какие-то подходы к хранению данных в state, а именно к сопоставлению id, хранимого внутри объекта, с индексом объекта в массиве?

Max
13.09.2016
11:35:44

Anton
13.09.2016
11:39:33
hasOwnProperty не подходит?
В случае, если я храню id активного элемента, приходится перебирать массив до совпадения по id. Попадалось на глаза что-то вроде хранения дополнительного объекта, в котором ключи - id, значения - индексы соответствующих объектов. Вроде как для этого использовался инструмент какой-то. Не могу найти.

Max
13.09.2016
11:40:26
может normalizr?

Anton
13.09.2016
11:43:11

Dmitriy
13.09.2016
12:23:49
кто знает, в ES собираются switch делать выражением?

Алексей
13.09.2016
12:26:23

Google

Dmitriy
13.09.2016
12:30:09
для удобства

Алексей
13.09.2016
12:30:42

Dmitriy
13.09.2016
12:32:51
например, в одном месте понадобилось сделать такое преобразование https://gist.github.com/dstarcev/e947a286188af341b5e1478c323090aa
пришлось его вынести в функцию
а мог бы написать const addressQuery = switch {...}

Anton
13.09.2016
12:35:46
{ foo: () => baar }[query]()

Malgalad
13.09.2016
12:37:03
https://github.com/hemanth/es-next#do-expressions тебя спасёт

Dmitriy
13.09.2016
12:37:42
спасибо

Admin
ERROR: S client not available

Владимир
13.09.2016
13:11:44

Anton
13.09.2016
13:14:08
({ foo: () => 'bar' })[query]()

Владимир
13.09.2016
13:14:45
эээ, ты же правильно все написал
только если не будет свойства то будет undefined
который ты как функцию вызовешь

Anton
13.09.2016
13:15:16
аа, там переменную подставить надо, вспомнил
в общем, надо было в скобки обернуть объект

Aleksey
13.09.2016
14:37:48
Ребята, никого не бесит жира?

Ilya
13.09.2016
14:38:10
Джира не может не бесить.

Grigory
13.09.2016
14:38:26
Бесит абсолютно всех, но лучше ничего не придумали)

Google

Ilya
13.09.2016
14:38:38
Особенно бесит облачная жира.
Там адок полный.

Aleksey
13.09.2016
14:39:02
Меня бесит тем что если ты в jetbrains авторизован, то на сайте ты вылетаешь.
Привкус дерьма на языке уже достал.
А в остальном мне норм.

Ilya
13.09.2016
14:40:30
А причём тут jetbrains?
Атлассиан что, убивает конкрутентов?

Aleksey
13.09.2016
14:41:02
Под jetbrains имею ввиду любую IDE от них, например webstorm.
Авторизуешься в жире в вебшторме и все, привет, вылет из браузера.

Brs
13.09.2016
14:43:18
у меня норм работает
может у вас админы накрутили чего-то не того?

Aleksey
13.09.2016
14:44:31
Это облачная жира, там нечего крутить, я узнавал.

Brs
13.09.2016
14:45:20
ааа, у нас безоблачная
хотя в прошлом году в облачной все норм работало

Aleksey
13.09.2016
14:48:01
В итоге я перелогиниваюсь в ней постоянно.

Dmitry
13.09.2016
14:48:38
Почувствовал себя счастливым, даже не знал, что жира с вебштормом вместе умеют работать)

Aleksey
13.09.2016
14:49:10

Dmitry
13.09.2016
14:49:39
Наверное, но мне немного страшно, зная то, сколько у нас в жире напилено всего :)

Aleksey
13.09.2016
14:49:53
Не понимаю твои опасения.