
David
09.10.2017
20:41:23
в конструктор

Юра
09.10.2017
20:44:01
В конструктор тоже можно:
class Article extends Component {
constructor(props, ...rest) {
super(props, ...rest);
this.state = { visible: false };
}
}

Dmitry
09.10.2017
20:46:16
спасибо парни

Юра
09.10.2017
20:47:21

Google

Vitaliy
09.10.2017
20:54:55

Duego
09.10.2017
21:14:31
народ
почему если мы метод у класса получаем таким образом
const { method } = className
то при вызове метода, у него this = undefined
а должен на класс ссылаться

Stepan
09.10.2017
21:16:31
Предположительно потому что ты получаешь static метод?
Какое там this?

Duego
09.10.2017
21:17:10
Ну если просто вызвать метод bar.foo() то на класс ссылается
пошел про this читать)

Stepan
09.10.2017
21:18:00
Сурово. У меня не работало
Читну, что ли, тоже

Женя
09.10.2017
21:27:58
Доброй ночи, вебпак билд падает из-за реакт роутера v4, и я даже не знаю что с этим делать.

Artyom
09.10.2017
21:39:01
{verificationStep <= 1 && <Component />}
Т.е. вернётся false. Я стараюсь избегать конструкций с булевыми выражениями, т.к. они деградирует производительность и могу вернуть неожиданное значение (0 / null / '')

Google

Юра
09.10.2017
21:39:10
пошел про this читать)
Там хитрее все.
function foo() {
console.log(this.bar);
}
var a = {bar: 'a', foo: foo};
var b = {bar: 'b', foo: foo};
a.foo // a
a.bar // b
var f = a.foo;
f() // undefined
В JS-е контекст присваивается в момент вызова. Переопредилить такое поведение можно с момощью .bind, и с помощью .call и .apply можно явно указать контекст.

Artyom
09.10.2017
21:40:15
Или стрелочная ф-я

Duego
09.10.2017
21:40:38
точно
спасибо
что напомнили

Stepan
09.10.2017
21:40:44

Юра
09.10.2017
21:40:59
Ну, стрелочная функция — это, в общем-то просто синтаксический сахар для function(){}.bind(this).

Artyom
09.10.2017
21:41:37

Duego
09.10.2017
21:41:47
мне уже дали ответ

Artyom
09.10.2017
21:42:20

Stepan
09.10.2017
21:42:26
@artalar, ты про неожиданные значения непонятно сказал, где там будет 0 или null?
Если сравнивать через == разве что))

Дмитрий
09.10.2017
21:42:43

Stepan
09.10.2017
21:42:51

Дмитрий
09.10.2017
21:43:20
даже если все прочие различия отбросить, поведение с контекстом совершенно иное

Artyom
09.10.2017
21:43:33

Stepan
09.10.2017
21:44:18
Подводные камни могут быть только если ты не приведёшь число к булевому типу

Artyom
09.10.2017
21:44:47
Просто часто делают value || anotherValue. Приходит 0 и все ломается

Stepan
09.10.2017
21:44:55
Это другой вопрос

Google

Stepan
09.10.2017
21:45:12
В твоём случае всё оки

Юра
09.10.2017
21:45:17

Artyom
09.10.2017
21:45:20
Да я понимаю)

Дмитрий
09.10.2017
21:45:40
Например?
стрелочной функции нельзя прибиндить другой контекст, например

Artyom
09.10.2017
21:45:53
Говорю, воспитываю себя просто. И повторюсь, компилятору от этого лучше

Алексей
09.10.2017
21:45:57

Stepan
09.10.2017
21:46:22

Дмитрий
09.10.2017
21:46:45

Юра
09.10.2017
21:48:37
А. Ну, да, согласен.
Потому что стрелочные функции захватывают лексический контекст.
Т.е.
function foo() {
return () => this.bar;
}
foo.call({bar: 'a'})(); // foo;

Duego
09.10.2017
21:55:23
в react-router как редирект сделать?

Artyom
09.10.2017
21:56:46
Redirect

Duego
09.10.2017
22:05:22
Метод нужен

Artyom
09.10.2017
22:09:02
push

Юра
09.10.2017
22:15:24
Метод нужен
Сделай так:
withRouter(({ history }) => {
return <button onClick={() => history.push('/foo')}>Click me</button>
});
Попробуй у себя.

Stepan
09.10.2017
22:31:47
Есть у кого ссыль почитать, как работает результат транспиляции async-await?

Artyom
09.10.2017
22:33:02
Ну на сайте Бабеля глянь

Google

Stepan
09.10.2017
22:34:53
Я уже глянул, но теперь стало интересовать, как генераторы транспилируются

Алексей
09.10.2017
22:49:23

Stepan
09.10.2017
22:51:37
Я думал, там проще))

Алексей
09.10.2017
22:54:40
точнее итератор

Admin
ERROR: S client not available

Stepan
09.10.2017
22:55:31
Но все оказалось сложнее)))
Так что код регенератора как-нибудь в другой раз посмотрю

Дмитрий
09.10.2017
22:58:53
Генератор — это всего лишь одна из имплементаций протокола Iterable/Iterator

Алексей
09.10.2017
23:00:44

Stepan
09.10.2017
23:23:18
Не про эти конкретно
А вообще про протоколы в js
Я кроме Iterator и Iterable ничего не вижу

Юра
09.10.2017
23:30:52

Stepan
09.10.2017
23:31:07
Вижу реализацию через Symbol

Google

Stepan
09.10.2017
23:31:56
Это теперь новый джаваскрипт с протоколами будет?

Юра
09.10.2017
23:35:03

Stepan
09.10.2017
23:35:50
Я про интерфейсы как концепцию спрашивал

Юра
09.10.2017
23:36:07
Поэтому на каждой итерации нужно проверить .done, и если .done == false, то сделать .next() и прочитать .value. Если .done == true, то .value == null.

Stepan
09.10.2017
23:36:34
Когда в моём жээсике будет class Foo implements Bar?
Вот это меня волнует)
А генераторы-то понятно, как работают

Юра
09.10.2017
23:38:02
https://github.com/michaelficarra/proposal-first-class-protocols
В stage 1 написано, это есть.
Есть такая реализация на sweet.js: https://github.com/disnet/sweet-interfaces
Но в бабеле нет, пичаль.
Чойта?
Реклама?

Pauline
09.10.2017
23:41:06
спам

Юра
09.10.2017
23:42:30
А можно как-то удалить?

Stepan
09.10.2017
23:46:29

Юра
09.10.2017
23:47:01