
Max
07.09.2017
14:37:33
Будет время правила почитать

Сергей
07.09.2017
14:37:34
а че я сейчас пропустил?

illiatshurotshka❄️
07.09.2017
14:37:44
жестоко

Max
07.09.2017
14:37:50
Да у меня на привет отмотало

Google

Max
07.09.2017
14:38:04
Ну ладно, на час
Ботом

Дмитрий
07.09.2017
14:38:13

illiatshurotshka❄️
07.09.2017
14:38:34
ну ты предлагал альтернативу енумам
но в хороших языках енумы могут в associated types

Max
07.09.2017
14:39:34
Строгую типизацию пусть завезут сначала
А потом за енамы поговорим

illiatshurotshka❄️
07.09.2017
14:39:48
es4?

Сергей
07.09.2017
14:40:13

Дмитрий
07.09.2017
14:45:25

illiatshurotshka❄️
07.09.2017
14:45:38
но в хаскеле так же, нет?

Дмитрий
07.09.2017
14:47:53

illiatshurotshka❄️
07.09.2017
14:48:17
да

Google

Дмитрий
07.09.2017
14:48:29
Тогда какие вопросы

illiatshurotshka❄️
07.09.2017
14:48:54
скучно

Дмитрий
07.09.2017
14:49:04
Не, а что ты хотел?

Ivan
07.09.2017
14:49:44
А где стоит хранить токен доступа? в кукисах или в localstorage?

Дмитрий
07.09.2017
14:50:11
На этом механизме вообще основано расширение функциональности языка, с возможностью имплементить любой тип любой твоей кастомной структурой

illiatshurotshka❄️
07.09.2017
14:51:08
на механизме символов?

Дмитрий
07.09.2017
14:51:12
Прикинь

illiatshurotshka❄️
07.09.2017
14:51:21
ну до определенной степени тогда

Дмитрий
07.09.2017
14:51:27
Не до определенной

illiatshurotshka❄️
07.09.2017
14:51:27
из-за обратной совместимости))))

Дмитрий
07.09.2017
14:51:32
Смешно
Ты понимаешь, что этим механизмом в том числе обошли и проблему обратной совместимости?
MooTools 2006 года расценивает Array.prototype.keys как переменную, es6 — как функцию
Авторы языка нашли универсальное решение чтобы не сломать ни то ни другое.

Вячеслав
07.09.2017
14:57:41
Может кто знает в чем дело, при добавление метода toUpperCase() перестает отрисовыватся и в консоле ничего нет http://prntscr.com/gi5b6o

Jew
07.09.2017
14:57:49
Есть material ui kit под react, с поддержкой ie10
?

Дмитрий
07.09.2017
14:58:37
ну до определенной степени тогда
Потому что Array ассоциирован с Symbol.unscopables
А то что он ассоциирован с Symbol.isConcatSpreadable позволяет ему редуцироваться в список своих элементов при операции .concat
То что у него есть Symbol.iterator позволяет делать yield* по нему и for of
Самое главное — что это не хак а официальная возможность, доступная каждому
class Iterable {
* [Symbol.iterator]() { yield ну ты понел }
get [Symbol.isConcatSpreadable]() { return true }
}
То есть наличие поля-символа в объекте тождественно его принадлежности соответствующему типу
Так что ты там про обратную совместимость?)

Google

Aziz
07.09.2017
15:02:04
привет кто работал с d3 + react ?

Mike
07.09.2017
15:10:01

Oleg
07.09.2017
15:15:54
Привет, а подскажите какой лучший способ сделать dispatch в componentWillMount?
getInitialProps?

Сергей
07.09.2017
15:17:48
делать dispatch в componentWillMount через getInitialProps
шта?!

Mike
07.09.2017
15:18:52
Похоже на случайно собранное реакт редакс бинго

Oleg
07.09.2017
15:19:03
?
Бывает и такое. Имеется ввиду, что если я получаю данные с сервера и кладу их в стор, и делаю это в componentWillMount то измененное состояние не ловится.

Victor
07.09.2017
15:20:18
походу тут два вопроса
1. подскажите какой лучший способ сделать dispatch в componentWillMount?
2. подскажите какой лучший способ сделать dispatch в getInitialProps?

ed
07.09.2017
15:20:40
народ, я примерно год назад для нашего проекта делал аналог https://beefree.io/editor только на реакте.
сейчас задумался переписать красиво оформить в опенсорс
кому-либо в принципе нужен визуальный редактор email-html на реакте?)
визуальный редактор, а на выходе можно сохранить всякие <table> и пр. костыли которые нужны в email-html
или, даже время не тратить

Oleg
07.09.2017
15:20:47
вопрос 1 как лучше сделать

Mike
07.09.2017
15:21:22
Берешь и делаешь, хуле

ed
07.09.2017
15:21:30
(не читал) но загрузка данных и установка первичных флагов типо isFetching всегда делаю в willMount чтобы на момент первого рендера данные уже были готовы

Oleg
07.09.2017
15:21:46
да я тоже делал с флагом всегда

Сергей
07.09.2017
15:21:46

Oleg
07.09.2017
15:22:06
но вдруг задумался а можно ли без них

Anton
07.09.2017
15:31:30
https://facebook.github.io/react/docs/react-component.html#componentwillmount
> Avoid introducing any side-effects or subscriptions in this method.

Google

Anton
07.09.2017
15:32:17
https://facebook.github.io/react/docs/react-component.html#componentdidmount
> If you need to load data from a remote endpoint, this is a good place to instantiate the network request.

code4aman
07.09.2017
15:33:19

Anton
07.09.2017
15:34:13
так я и говорю, что в описании componentWillMount написано не использовать ничего, что вводит side-effects
а в componentDidMount как раз написано, что используйте его для того, чтобы запрашивать данные с сервера
никто не знает какой-нибудь короткий способ присобачить декоратор к экспортируемой функции? для классов можно сделать
@myDecorator
export default class MyClass ...
а для функции, например, если я её хочу в higher-order функцию завернуть?

Сергей
07.09.2017
15:35:48

ed
07.09.2017
15:36:06
ок, у тебя есть форма пользователя отображающая его данные.
в initialState ты сделал isFetching === true,
открываешь первый раз - видишь прелоадер и ожидаются данные
когда ты меняешь ссылку (user_id) и тебе нужны данные другого пользователя откуда тебе их брать? if user === undefined return <Loader/>?

Admin
ERROR: S client not available

Сергей
07.09.2017
15:36:13

ed
07.09.2017
15:36:19
я против запроса данных в componentDidMount

Anton
07.09.2017
15:36:39

ed
07.09.2017
15:37:13
на момент первого рендера должны быть максимально готовы данные, от того, что у тебя будет dispatch до рендера компонента - ничего страшного, а если у тебя не будут готовы данные - страшно

Anton
07.09.2017
15:38:16
ну эм
export default myDecorator(myFynction)
ну допустим у меня файл с большим количеством функций
export const load = id => async (dispatch, getState) => {}
export const save = () => async (dispatch, getState) => {}
и так далее

ed
07.09.2017
15:38:17
у нас в проекте один специалист перенес запрос данных в DidMount теперь переделывают т.к. таблицы и формы рендерятся с предыдущими значениями или рендерятся по 3 раза (или более), или не показывают лоадер вовремя

Oleg
07.09.2017
15:38:29

ed
07.09.2017
15:38:40
конечно основная причина - говнокод, но конкретно это приводит минимум к 40% проблем фронта в нашем случае вместе с говнокодом)

Anton
07.09.2017
15:39:39
получается только если так
const _load = id => async (dispatch, getState) => {}
export const load = decorator(_load)
?

Sergey
07.09.2017
15:39:47
Так, погоди-погоди. Ты делаешь диспатч в cWM и как это сделает погоды?
У тебя успеет сработать cDM, разве не?

Google

Сергей
07.09.2017
15:40:08

Anton
07.09.2017
15:40:51

Sergey
07.09.2017
15:40:58
Точнее где ты берешь гарантии того, что диспатч обработается до cDM?

Сергей
07.09.2017
15:41:06
кому как
мне норм
я с ts и flow юзал
более чем удобно

ed
07.09.2017
15:41:13
я делаю dispatch в cWM и на момент когда вызывается render в нормализированном сторе (redux) у меня уже проинициализирована моделька с флагом isFetching === true, а в самом начале рендера написано if isFetching return <Loader />
ну ни разу еще не подводило)

Anton
07.09.2017
15:41:32
думал может подвезли чё похожее на
@decorator
export const load = () => {...}

Сергей
07.09.2017
15:41:39
нет

Sergey
07.09.2017
15:42:50

ed
07.09.2017
15:43:11
ок, сразу поставил true, а когда ты перешел к следующему пользователю откуда он возьмется?
сразу его тоже надо ставить и это тоже важно
если у тебя нормализированный стейт у тебя этой модели не будет, если у тебя отдельный ключ для страницы - у тебя там будут прошлые данные

Sergey
07.09.2017
15:43:43
Всмысле перешел? Я тебя не понимаю.

ed
07.09.2017
15:44:00
users/5 сменил на users/6
страница выглядит так же
тут еще надо проверять componentWillReceiveProps
и если сменился id делать диспатч
а если сделал переход users -> users/6 -> users -> users/7