@react_js

Страница 254 из 5115
Ҫѐҏӗѫӑ
27.06.2016
23:56:55
в блюберд норм

но это либа, а не нативные штуки

Nikita
27.06.2016
23:57:54
вот стандартные each/map/filter/reduce, props и cancel для некоторых случаев

и все будут в экстазе

Google
Ҫѐҏӗѫӑ
27.06.2016
23:58:14
да, это надо

Nikita
27.06.2016
23:58:26
но это либа, а не нативные штуки
так надо добавить в нативную реализацию

Ҫѐҏӗѫӑ
27.06.2016
23:58:33
и это как раз норм реализуется с помощью асинхронных генераторов

Nikita
27.06.2016
23:58:58
да они их оптимизировать еще 100 лет будут

в bluebird все быстро работает на vanilla js, старом добром es5

Ҫѐҏӗѫӑ
27.06.2016
23:59:17
это не значит, что они не нужны

в блюберд и промисы быстрее нативных, и их отменять можно

но почему-то фетч не блюберд юзает

Nikita
28.06.2016
00:00:00
не, зачем отменять

там же на js написано

Ҫѐҏӗѫӑ
28.06.2016
00:00:10
чтобы отменить

Nikita
28.06.2016
00:00:11
копипаст иногда полезная штука

а, все, не так понял))

Google
Nikita
28.06.2016
00:02:50
блюберд в приложение фронтендское тащить можно, если реально много на промисах написано. Мне в фронтенде обычно нативных хватает + хелперы

Ҫѐҏӗѫӑ
28.06.2016
00:03:58
так о чем и речь. бтв мне в экстеншне для хрома понадобились продвинутые паттерны для промисов (там куча асинхронщины в хром апи)

и мне тоже не хотелось тащить блюберд

ради 1-2 кейсов

Nikita
28.06.2016
00:04:38
минутка оффтопика)) Хотел в автошколу пойти, все никак. Зато автошкола уже раз 10 просит оплатить себя скидывая цену и грозя убрать скидку. А арифметика у них на высоте))

Ҫѐҏӗѫӑ
28.06.2016
00:04:45
так бы я взял что-то типа лодаша, но для асинхронщины, такого же модульного

Nikita
28.06.2016
00:05:12
там блюберд можно собрать, как лодаш с нужными фичами

но это не так удобно, к сожалению

Ҫѐҏӗѫӑ
28.06.2016
00:05:34
да, и он захочет свои промисы

ура. нашел в вебките тикет

но не могу найти как подписаться пздц

Nikita
28.06.2016
00:07:13
а из бабеля совсем автор ушел?

раньше issue за 5 минут-час ну максимум закрывали. Уже 2-3 дня даже не ответили(

Ҫѐҏӗѫӑ
28.06.2016
00:09:33
он пилит для реакта новую фигню

там теперь логан смит, хенри зуу рулят

и прочие

даже джеймс кайл уже все

Nikita
28.06.2016
00:10:36
Ҫѐҏӗѫӑ
28.06.2016
00:13:33
чтобы реакт инициализировался быстрее

Google
Ҫѐҏӗѫӑ
28.06.2016
00:13:43
на реакт европ он рассказывал

видос должен быть

https://www.youtube.com/watch?v=xbZzahWakGs

забавно. в вебките и фф асинк ф-ии пилят одни японцы

anoru
28.06.2016
06:44:51
600 мессаг за ночь, ребята, это мощно, но я осилил )

Andrey
28.06.2016
07:39:40
Dmitry
28.06.2016
07:40:36
там не понятно что с кетч
А что именно непонятно?

Art
28.06.2016
07:44:04
ты должен вернуть промайз, тогда да
Ты все «i» считаешь как «ai»?

Dmitry
28.06.2016
07:44:57
Вот кстати что fetch не может быть зааборчен - это грусть печаль

Иногда подгорает от этого

Art
28.06.2016
07:45:56
Для такого супер-конкретного кейса юзай колбеки.

Denis
28.06.2016
07:47:17
superagent+bluebird же

Dmitry
28.06.2016
07:55:23
Не fetch, а promises в целом.
Ну это да, я тут как раз недавно спрашивал, что там со спеками промисов :3 и фетча

superagent+bluebird же
Как вариант, конечно, да.

Pavel
28.06.2016
08:00:05
ребята подскажите плиз как правильно сделать

есть моделька EmailList

в ней лежат Email'ы

как правильно менять их чтобы в редюсере состояние новое было, а не копировалось

код простейший, тренируюсь тут)

Google
Pavel
28.06.2016
08:00:59
class EmailsList { constructor(emails = []) { this.emails = emails; } addEmail() { this.emails.push(new Email()); } removeEmail(index) { if (this.emails[index] !== undefined) { delete this.emails[index]; } } } class Email { constructor(email) { this.email = email; this.error = null; } addError(error) { this.error = error; } removeError() { this.error = null; } }

Алексей
28.06.2016
08:01:06
используй {...state}, как и в доках пишут

Pavel
28.06.2016
08:01:37
я буду возвращать состояние со старой ссылкой на объект EmailList

разве нет?

т.е. если я сделаю допустим let emailsList = state.emailsList; emailsList.addEmail(); return {...state, emailsList: emailList}; то это будет норм?

там же emailsList будет старый

Алексей
28.06.2016
08:04:13
>let emailsList = state.emailsList; let emailList = {...state.emailsList}

Admin
ERROR: S client not available

Алексей
28.06.2016
08:04:21
ссылка будет новая

Pavel
28.06.2016
08:05:14
хм

сейчас проверю)

Меняется тип state.emailsList с EmailsList {emails: Array[4]} "object" на shareModal.js:53 Object {emails: Array[4]} "object"

и я естественно уже не могу пользоваться методами addEmail, changeEmail и т.д.

Алексей
28.06.2016
08:10:33
и я естественно уже не могу пользоваться методами addEmail, changeEmail и т.д.
ааа, точно у тебя ж там свой собственный объект

как вариант может реализовать какой-нить метод, который возвращает тот ж самый объект, только по новой ссылке

но эт чет замороченно как то

а ты в редьюсере прямо экземпляр класса держишь?

почему бы не держать в редьюсере чистый массив эмейлов

но менять его с помощью экземпляра класса твоего

Google
Алексей
28.06.2016
08:12:50
тип emailList.getEmails() возвращает все емейлы ( с новой ссылкой )

и ты в редьюсере уже пишешь

{...state, emailList: emailList.getEmails()}

Pavel
28.06.2016
08:14:18
да, экземпляр

хм, интересная мысль, спасибо большое, сейчас попробую

вот так норм, работает: initialState.emailsList.addEmail(); initialState.emailsList.addEmail(); initialState.emailsList.addEmail(); initialState.emailsList.addEmail(); console.log(initialState.emailsList, typeof initialState.emailsList); const a = initialState.emailsList; initialState.emailsList = new EmailList(a.getEmails()); console.log(initialState.emailsList, typeof initialState.emailsList); initialState.emailsList.addEmail(); initialState.emailsList.addEmail(); console.log(a.emails, initialState.emailsList.emails);

это естественно тестовый код, если что:)

еще 1 вопрос, допустим я использую переменную emailsList, определяю ее через let, но тогда в другом кейсе такую переменную уже не определить, ведь она не может повторяться в одном блоке кода

тогда делаем тукую штуку через var?

хотя можно до switch переменную эту объявить и тогда проблем нет)

Алексей
28.06.2016
08:21:44
нее, let видна в каждом блоке своя

switch(t) { case 1: {let a = 10} case 2: {let a = 11} }

не будет ошибки

Pavel
28.06.2016
08:26:11
спасибо Алексей

подскажите еще плиз, нормально ли в стейтлесс компоненте задавать функцию onClick={e => {e.preventDefault(); props.doAction()}} или лучше в родителе doAction переопределять?

Alex
28.06.2016
09:24:52
Я обычно делаю функцию простую function handleClick(props) { return e => { e.preventDefault(); props.doAction(); }; } а потом юзаю ее <a href="#click" onClick={handleClick(props)}>Click me</a>

Но тут зависит от задачи сильно)

Алексей
28.06.2016
09:26:09
я наоборот все в стейтлес компонентах передаю так как есть

Pavel
28.06.2016
09:26:44
AlexWolf - это в родителе такое объявление идет?

Pavel
28.06.2016
09:27:00
просто задолбливает каждую функцию которая на onClick в родителе дублировать

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