@react_js

Страница 1055 из 5115
Ilnur
13.03.2017
08:42:59
смотри что расшираяешь

Evgeny
13.03.2017
08:43:14
Мобкс потрясный, я смотрю

Ilnur
13.03.2017
08:44:38
это не проблема мобикса, работает он наверно нормально, т.к. не использовал его ни разу

Mikhail
13.03.2017
08:45:45
согласен, он видимо правильно делает

Google
Danil
13.03.2017
08:46:44
А зачем dispatch возвращает action?

Ilnur
13.03.2017
08:49:15


ну или писать так коль душе угодно

Mikhail
13.03.2017
08:50:59
так можно, но я как раз хотел избавиться от этого в конструкторе

Ilnur
13.03.2017
08:54:22
при реализации через прототип ты получишь лапшу еще хлеще

Mikhail
13.03.2017
08:55:24
ну это да, но зато избавляюсь от лишнего оверхеда в конструкторе, так как при создании каждого объекта будет вот это делаться

либо мне по другому надо делать видимо

на сервере сразу рендерить готовые классы

Ilnur
13.03.2017
08:58:28
ну ты же хочешь чтобы обсерв свойств экземпляра класса был уникален и в рамках кода какбы это нормально. Или что, иное нужно?

Mikhail
13.03.2017
09:02:21
я хочу чтобы было так:



но name я хочу добавить в рантайме, но не хочу чтобы это в конструкторе делалось

Google
Алексей
13.03.2017
09:03:20
Ну так сделай. Что тебе мешает?

Mikhail
13.03.2017
09:03:58
Ну так сделай. Что тебе мешает?
Данные по набору свойст не известны при написании класса, они приезжают с сервера

Нужно динамически добавить

Mikhail
13.03.2017
09:04:55
Ага, она с сервера едет

Алексей
13.03.2017
09:06:10
Тогда это проблема. Единственное что могу предложить - это оборачивать данные с сервера в observable.

Artur
13.03.2017
09:06:40
Нужно динамически добавить
Добавляй динамически через extendObservable

Алексей
13.03.2017
09:06:53
const obj = observable(myData);

Mikhail
13.03.2017
09:07:26
Добавляй динамически через extendObservable
в конструкторе не хочется

Artur
13.03.2017
09:08:08
в конструкторе не хочется
Религия не позволяет?)

Mikhail
13.03.2017
09:08:16
я пока вижу только один выход, на сервере генерить готовые классы с декораторами, и тогда все красиво

Алексей
13.03.2017
09:08:18
Добавляй динамически через extendObservable
А mobx позволяет безболезненно делать extendObservable несколько раз на одном объекте? По идее должен, но хрен его знает.

Mikhail
13.03.2017
09:08:36
Религия не позволяет?)
Оверхде при создании каждого объекта, как-то чуток напрягает ))

Алексей
13.03.2017
09:08:44
Ilnur
13.03.2017
09:08:55
Данные по набору свойст не известны при написании класса, они приезжают с сервера
а схема мутабельна в рамках одной сессии пользователя?

Artur
13.03.2017
09:09:06
Как раз схема на клиенте не известна, с бека приходит и я добавляю

Mikhail
13.03.2017
09:09:46
А ты измерял оверхед?
Нет, просто может слишком я сильно об этом думаю, но просто наличие кода создания атрибутов в конструкторе, чутка напрягает

Google
Алексей
13.03.2017
09:09:59
я пока вижу только один выход, на сервере генерить готовые классы с декораторами, и тогда все красиво
Ага, в конструкторе религия писать код не позволяет, а засунуть кодогенерацию на сервер - запросто.

Алексей
13.03.2017
09:11:06
И кстати, работать с неизвестной схемой не выйдет все равно

Mikhail
13.03.2017
09:11:12
просто думал может есть вариант без конструктора

Алексей
13.03.2017
09:11:45
Хотя нет, можно, но сложно

Если генерировать интерфейс динамически в зависимости от пришедших данных

Ilnur
13.03.2017
09:13:30
Данные по набору свойст не известны при написании класса, они приезжают с сервера
у тебя же наверняка есть какой-то файлик config.js, который не изменяем для приложения, подгрузи там и делай просто экстенд

Mikhail
13.03.2017
09:13:52
что-то в этом роде

Алексей
13.03.2017
09:14:07
просто думал может есть вариант без конструктора
А обязательно юзать классы, может обычные объекты подойдут?

Mikhail
13.03.2017
09:14:15
и кстати странно что нет observable декортора в виде функции

Mikhail
13.03.2017
09:14:29
observer (Class, key, descr)

Mikhail
13.03.2017
09:14:39
Есть же
Там класс передать нельзя

Алексей
13.03.2017
09:14:53
observer (Class, key, descr)
А, тогда нет наверное

Mikhail
13.03.2017
09:15:16
вот она:



но ее экспортят почему-то ((

Алексей
13.03.2017
09:18:11
Можно самому написать такую обертку.

Artur
13.03.2017
09:18:54
и кстати странно что нет observable декортора в виде функции
декоратор и есть вызов функции на прототипе же

Mikhail
13.03.2017
09:20:34
эксе

Google
Mikhail
13.03.2017
09:20:44


в доках не написано потому что это очевидно?

Artur
13.03.2017
09:22:51
Mikhail
13.03.2017
09:24:24
https://mobx.js.org/best/decorators.html
тут нет ничего про prototype

Artur
13.03.2017
09:25:37
Creating observable properties without decorators

Используйте extendObservable

Admin
ERROR: S client not available

Mikhail
13.03.2017
09:26:04
Ну я понял, я так и сделал с самого начала, у меня это уже работает

Artur
13.03.2017
09:26:31
Тогда я не понимаю зачем тебе извращатсья в вызовом сигнатуры декоратора руками

Mikhail
13.03.2017
09:26:33
Просто задумался может можно не в конструкторе делать )

Я тогда могу не трогать классы в которых я добавляю что-то

observable (Foo.prototype, 'name'); вот эта штука работает как надо, но нигде про это не написано

или я извращаюсь? )))

Artur
13.03.2017
09:28:32
Кстати попробуй extendObservable(Foo.prototype, {name: void 0}

Mikhail
13.03.2017
09:29:25
Спасибо большое всем за помощь, очень помогли, много нового узнал. ??

Artur
13.03.2017
09:30:51
ну значит так не будет работать

Mikhail
13.03.2017
09:31:14
вот фидл: https://jsfiddle.net/ugg8eq6s/

Google
Mikhail
13.03.2017
09:31:57
третий аргумент это descriptor



Denis
13.03.2017
10:11:04
Друзья, весна пришла с хорошими новостями! ? Мы продолжаем встречи, посвященные React.js, новостям и трендам в экосистеме React.js, а также обменом необычным опытом его использования. Уже на следующей неделе состоится React Moscow Meetup 2, основными темами которого станут: MobX, bem-react-core, PreJSS. Но как всегда, самое интересное и полезное произойдёт за рамками докладов. ;) Когда: 15 марта, 19:00, Москва Где: Яндекс, улица Льва Толстого, 16 На этот раз к нам специально прилетает гость из Киева. ✈️ Учитывая вашу обратную связь, в этот раз мы постараемся больше времени уделить конкретным темам и живому общению. Два больших доклада и один короткий доклад в рамках рубрики "Открытый Микрофон". Готовы выступить с докладом на следующем митапе? Хотите поделиться своим Open Source проектом? Возникли вопросы? Пишите в Telegram: @DenisIzmaylov ? Кроме того, смело пишите в комментариях к этом посту вопросы, которые хотели бы обсудить и ответы на которые хотели бы получить. Попробуем их затронуть. Даже если не сможете быть лично, видеозапись будет. ? Программа: ✅ 19:00 - Сбор и знакомство. ✅ 19:30 - Приветственное слово, дайджест событий, слухи. :) ✅ 19:50 - Как лучше всего использовать React? На сегодняшний день существует множество архитектурных решений - кто-то выбирает Redux, другие пойдут мутировать данные вместе с MobX, а любителям FRP придется по душе Calmm. Но что скрывается за каждым из этих решениями? Какие подводные камни каждый из этих выборов таит? Поговорим о плюсах и минусах различных инструментов для State Management, чтобы вы могли сделать правильный выбор для следующего проекта. Григорий Шехет, ведущий разработчик в Grammarly. ✅ 20:20 - Кофе-брейк, живое общение. ✅ 20:40 - PreJSS: финальная точка в войне CSS-форматов. Небольшой экскурс в JSS с его плюсами и минусами, и примером того, как PreJSS решил эти проблемы. Денис Измайлов, основатель Axept Global. ✅ 20:50 - bem-react-core: что нового? С момента первой презентации на React Moscow Meetup, мы активно потрудились над улучшением bem-react-core. Что нового появилось? Какие перемены произошли? О том, как стало работать ещё быстрей и проще, про авто-тесты и поддержку переводов, сборка для сервера без webpack и ещё кое-что интересное. Сергей Бережной, руководитель отдела разработки поисковых интерфейсов в Яндекс. ✅ 21:30 - Общие Q&A, свободное общение Регистрируйтесь: https://www.meetup.com/React-Moscow-Meetup/events/238288715/
Друзья, важная НОВОСТЬ! Для того, чтобы попасть на митап - необходима только регистрация на странице мероприятия на сайте Яндекса. Для гостей, которые не зарегистрировались на мероприятие по ссылке ниже, Яндекс оставляет за собой право ОТКАЗАТЬ в проходе на мероприятие. Регистрация на Meetup для конкретно этого митапа не имеет значения. Регистрируйтесь здесь: + https://events.yandex.ru/events/yagosti/15-march-2017/

Danil
13.03.2017
11:02:22
Подскажите пожалуйста зачем dispatch возвращает action

Алексей
13.03.2017
11:03:44
он вроде не только action может возвращать. а например промис

Dreamerinnoise
13.03.2017
11:03:50
Yan
13.03.2017
11:03:52
в редюсеры прокидывает вроде а не просто возвращает

Алексей
13.03.2017
11:05:55
если dispatch возвращает промис, то можно например сделать что-то с этим промисом: dispatch(myAsyncAction()).then(() => { ... });

можно например обновить локальный стейт компонента

Danil
13.03.2017
11:07:32
А зачем там такие строки let currentListeners = []; let nextListeners = currentListeners;

Это в исходниках createStore

Igor
13.03.2017
11:09:25
покажи исходники :)

Алексей
13.03.2017
11:09:42
ну массив слушателей нужен для поддержки множества различных слушателей (внезапно, да?), например, если много раз subscribe вызвать с разными функциями

Алексей
13.03.2017
11:13:31
похоже массив слушателей иммутабельным сделали

function ensureCanMutateNextListeners() { if (nextListeners === currentListeners) { nextListeners = currentListeners.slice() } }

а зачем вообще лезть в кишки редакса?

Danil
13.03.2017
11:19:13
Чтобы понимать как он работает и чтобы найти пробелы в знаниях js

Страница 1055 из 5115