@react_js
React — русскоговорящее сообщество

Обсуждаем React.js и экосистему. См. также: @reactnative_ru, @apollo_ru, @protonnative_ru, @nodejs_ru, @js_ru, @uiux_ru Вакансии и поиск работы: @javascript_jobs Правила: http://bit.ly/our_etiquette Sponsored with ❤️ by www.axept.co

5822 members

Архив канала @react_js 19 мая 2016 г.

12:19:53 ДП
12:32:35 ДП
User 309556
15.1.0-alpha на след неделе
02:26:48 ДП
User 4627228
Голосуем: https://twitter.com/denisizmaylov/status/733064324214853632
twitter.com/denisizmaylov/status/733064324214853632
Which is the best approach to bind `this` in components? Retweet please.🚀#react #ES6 #ES2016 #components #javascript
02:28:32 ДП
User 656567
но зачем?
02:35:08 ДП
User 309556
что зачем?
02:47:57 ДП
User 656567
Зачем голосовать? Что это изменит?
03:10:03 ДП
User 309556
ничего. очевидно
03:10:30 ДП
User 309556
зато +10 к пиару
04:58:52 ДП
User 47983686
Странно, что нет варианта определить arrow function выше и использовать через this :/
05:17:15 ДП
User 1294634
Мы у себя декораторы юзаем и пакет core decorators
05:18:19 ДП
User 4627228
User 4627228
Голосуем: https://twitter.com/denisizmaylov/status/733064324214853632
twitter.com/denisizmaylov/status/733064324214853632
Which is the best approach to bind `this` in components? Retweet please.🚀#react #ES6 #ES2016 #components #javascript
Arrow funcs выбиваются в топ пока)
05:18:23 ДП
User 1294634
Оттуда autobind соответственно
05:50:14 ДП
User 64167409
:: нет варианта :/
06:21:31 ДП
User 198292089
User 64167409
:: нет варианта :/
Это же вроде и есть autobind decorators
06:24:15 ДП
User 198292089
Хотя нет, это отдельная либа, посмотрел. Ну в общем я тоже обычно :: юзаю, но думаю, что эту либу можно будет заюзать, это удобно
06:25:02 ДП
User 597730
mobx почти добрался до версии 2.2: https://github.com/mobxjs/mobx/pull/253
github.com/mobxjs/mobx/pull/253
Steps until completing release; finish all planned features, see #219 Update & restructure docs verify dev-tools & mobx-react, update deps etc write release blogpost
06:49:34 ДП
User 108543364
А кто нибудь пробовал несколько версий реакта на одной странице дружить?
06:50:11 ДП
User 108543364
P.s. Нужно для разработки виджета
06:51:16 ДП
User 145527694
User 108543364
А кто нибудь пробовал несколько версий реакта на одной странице дружить?
Можно через webpack подключить несколько версий либы и импортировать из в разных компонентах.
PS: сам не пробовал
07:23:44 ДП
User 775925
Кажется будет правильнее вести поддержку нескольких версий реакта у виджета
07:35:25 ДП
User 153807368
User 4627228
Arrow funcs выбиваются в топ пока)
А то что они создаются заново в каждом рендере никого не парит?
07:39:45 ДП
User 108543364
User 775925
Кажется будет правильнее вести поддержку нескольких версий реакта у виджета
Тут имеется ввиду, что мы делаем сторонний виджет, который встраивают сайты. Хотелось бы избежать проблем, если сайт клиента тоже использует реакт
07:40:44 ДП
User 185980313
User 153807368
А то что они создаются заново в каждом рендере никого не парит?
а если использовать class + arrow function ? разве тоже каждый раз создаются ?
07:40:59 ДП
User 145527694
Можно отдавать скомпилированный и минифицированный bundle
07:41:42 ДП
User 64167409
::handle и handle.bind(this) тоже создаются при каждом рендере
07:42:34 ДП
User 64167409
в идеале делать bind в конструкторе/свойствах класса, но ломает, видел трансформ для бабела экспериментальный, но не юзал
07:44:41 ДП
User 185980313
class Test extends Component {
  handleClick = event => console.log(21);
  render() {
    return <div onClick={this.handleClick}>123</div>
  }
}
07:44:48 ДП
User 185980313
обычно в такой записи использую
07:45:33 ДП
User 153807368
User 64167409
::handle и handle.bind(this) тоже создаются при каждом рендере
This ^
07:45:43 ДП
User 47983686
User 185980313
class Test extends Component {
  handleClick = event => console.log(21);
  render() {
    return <div onClick={this.handleClick}>123</div>
  }
}
+1
07:46:35 ДП
User 185980313
при class + arrow function не пересоздаются каждый раз + нет не красивого биндинга в конструкторе )
07:46:55 ДП
User 153807368
Сам узнал об этом внезапно когда прикрутил кодстайл аирбнб, с тех пор пилю обработчики в конструкторе
07:49:57 ДП
User 153807368
User 185980313
class Test extends Component {
  handleClick = event => console.log(21);
  render() {
    return <div onClick={this.handleClick}>123</div>
  }
}
Годная альтернатива
07:50:51 ДП
User 185980313
единствено, нужен подключенный stage-1
07:52:11 ДП
User 153807368
https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/jsx-no-bind.md
github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/jsx-no-bind.md
React specific linting rules for ESLint. Contribute to yannickcr/eslint-plugin-react development by creating an account on GitHub.
07:52:33 ДП
User 185980313
у нас включено такое правило )
07:53:35 ДП
User 153807368
У нас тоже)
07:54:28 ДП
User 64167409
не всем оно нравится
07:55:06 ДП
User 185980313
там только в некоторых случаях может мешать )
07:55:25 ДП
User 64167409
помню мочилово было в твиттере по этому поводу, юзать его или нет
07:56:14 ДП
User 185980313
но для тех случаев есть eslint-disable )
07:57:08 ДП
User 40529464
User 185980313
там только в некоторых случаях может мешать )
а в каких случаях оно мешает? есть случаи, когда bind() в constructor не подойдет?
08:03:50 ДП
User 185980313
когда bind используешь не только как привзяку к контексту, а еще и прокидыванием параметров(карринг).
08:04:59 ДП
User 126987636
а чем плохо использовать arrow functions на уровне класса?
08:05:17 ДП
User 153807368
В таком месте локально правило можно отрубить
08:05:30 ДП
User 126987636
зачем bind в конструкторе?
08:05:47 ДП
User 153807368
Ничем)
08:05:52 ДП
User 1294634
stage-1 нужен
08:05:56 ДП
User 1294634
Разве что
08:06:22 ДП
User 126987636
а, ок, да
08:06:28 ДП
User 126987636
у меня stage-0)
08:08:10 ДП
User 40529464
User 185980313
когда bind используешь не только как привзяку к контексту, а еще и прокидыванием параметров(карринг).
ага, понятно
08:12:14 ДП
User 185980313
кто нибудь еще смотрел как работают es modules в edge?
08:12:55 ДП
User 1294634
stage0 это жёстко)
08:20:21 ДП
User 185980313
User 185980313
кто нибудь еще смотрел как работают es modules в edge?
у вас получилось импортнуть с стороннего сайта?
08:21:09 ДП
User 213704994
Andrey
> handleClick = event => console.log(21);
в конструкторе?
08:28:51 ДП
User 185980313
User 213704994
Andrey
> handleClick = event => console.log(21);
в конструкторе?
запись нет, но если посмотреть на код, который транспилит бабел, то примерно там
08:31:11 ДП
User 153807368
User 1294634
stage0 это жёстко)
А почему?
08:34:40 ДП
User 185980313
User 153807368
А почему?
можно столкнутся с проблемой, что изменят спеку и придется переписывать. Но у нас тоже включен stage-0 и всегда его включаю )
08:37:32 ДП
User 153807368
я его включал по принципу "сразу все, чтоб два раза не вставать"
08:37:39 ДП
User 1294634
А что вы юзаете?
08:37:44 ДП
User 1294634
Из stage0
08:38:16 ДП
User 1294634
У меня проперти в классах и декораторы из stage1
08:38:30 ДП
User 1294634
А так больше и ничего, вроде
08:39:47 ДП
User 185980313
в stage-0 сейчас и нет ничего нормального, только биндинг с помошью :: и do {}
08:39:49 ДП
User 153807368
да тоже немного на самом деле
а есть какой то оверхед допустим при смене со stage1 на stage0?
время сборки например?
08:40:45 ДП
User 153807368
вот ::биндинг где-то есть точно
08:41:28 ДП
User 185980313
я думаю сильно не изменится )
08:43:35 ДП
User 153807368
ну вот я тогда не понимаю, зачем юзать stage1 если можно stage0 ))
08:43:55 ДП
User 4274761
User 1294634
У меня проперти в классах и декораторы из stage1
появилась новая спека декораторов? их же из бабела выпилили
08:44:55 ДП
User 1294634
У меня легаси, точняк
08:46:22 ДП
User 4274761
есть где-то все варианты биндинга в одном месте? в опросе не все варианты, а здесь выше написанное я, кажется, не все понял. как минимум пойду читать про ::
08:47:04 ДП
User 185980313
это просто сахар .bind(this) === ::, func.bind(obj) === obj::func
08:49:23 ДП
User 153807368
this.handler.bind(this) === ::this.handler
08:50:07 ДП
User 4274761
жуть какая
08:53:21 ДП
User 775925
жуть это вот когда такое делают: https://jsbin.com/maqora/edit?js,console
jsbin.com/maqora/edit?js,console
A live pastebin for HTML, CSS & JavaScript and a range of processors, including SCSS, CoffeeScript, Jade and more...
09:10:48 ДП
User 153807368
User 4274761
есть где-то все варианты биндинга в одном месте? в опросе не все варианты, а здесь выше написанное я, кажется, не все понял. как минимум пойду читать про ::
вроде ничего не забыл, 6 вариантов
https://gist.github.com/maullerz/0f8b2ec9543ae08f151e738f3859b7fe
gist.github.com/maullerz/0f8b2ec9543ae08f151e738f3859b7fe
GitHub is where people build software. More than 28 million people use GitHub to discover, fork, and contribute to over 85 million projects.
09:26:06 ДП
User 4274761
User 153807368
вроде ничего не забыл, 6 вариантов
https://gist.github.com/maullerz/0f8b2ec9543ae08f151e738f3859b7fe
gist.github.com/maullerz/0f8b2ec9543ae08f151e738f3859b7fe
GitHub is where people build software. More than 28 million people use GitHub to discover, fork, and contribute to over 85 million projects.
Спасибо! Хороший список
09:26:59 ДП
User 23384802
В большом компоненте можно еще все методы вынести в отдельный js файл типа handle.js И в конструкторе воткнуть
    Object.keys(handle).map(key => {
      this[key] = handle[key].bind(this);
    });

лол)
09:27:29 ДП
09:27:40 ДП
User 152745946
вот это дикий быдлокод и непонимание основ реакта)
09:28:29 ДП
User 39182759
что именно?
09:28:51 ДП
User 4274761
У меня декораторы с легаси плагином не заработали с react-hot-loader@1.3.0. Issue есть по этому поводу, но обсуждения долгие, я попробовал разные комбинации версий и решил, что без декораторы тоже можно жить) у кого-то завелось?
09:29:06 ДП
User 152745946
эти 3 метода, по сути они все одинаковы
09:29:35 ДП
User 4274761
User 152745946
вот это дикий быдлокод и непонимание основ реакта)
1е в доке реакта)
09:30:07 ДП
User 152745946
ну, в качестве примера) Я про реальный код
09:30:09 ДП
User 143141567
первый метод как раз будет каждый раз при рендере новую функцию создавать
09:30:22 ДП
User 143141567
да все три
09:30:23 ДП
User 143141567
будут
09:30:25 ДП
User 23384802
А кто что выбирает, когда надо передать параметр в метод? Я вот видел много кода, где люди передавали через дата аттрибут
09:30:26 ДП
User 23384802
это жесть
09:30:26 ДП
User 39182759
1 и 2 на самом деле отличаются слегка, но что тут показывает непонимание основ реакта?
09:30:42 ДП
User 23384802
причем весь проект был так построен
09:30:53 ДП
User 152745946
1 и 3 вообще не отличаются, 2 слегка, да
09:31:25 ДП
User 152745946
у тебя render может вызываться 100500 раз, и ты туда выносишь тяжелые операции, хотя мог бы сделать их вне render.
09:32:24 ДП
User 143141567
User 23384802
А кто что выбирает, когда надо передать параметр в метод? Я вот видел много кода, где люди передавали через дата аттрибут
а что в этом плохо? Работать через data-*
09:32:53 ДП
User 23384802
А как избавиться от
const test = (event, i) => 

<div onClick={event => this.test(event, i)}></div>
Тоже при каждом рендере будет создаваться функция.
09:33:09 ДП
User 152745946
вынести в компонент
09:33:33 ДП
User 23384802
например? В данном случае const test не внутри рендера. А в классе
09:33:49 ДП
User 23384802
ойбез конст, конечно. туплю с утра что-то
09:33:52 ДП
User 39182759
во-первых, не я. Во-вторых, далеко не факт, что рендер конкретно этого элемента вызывается 100500 раз, в третьих создание функции не такая уж тяжелая операция, в-четвертых, преждевременная оптимизация - корень всего зла
09:34:40 ДП
User 152745946
в смысле не факт? Если у тебя там shouldComponentUpdate возвращает false всегда? Ну да, тогда не факт.
09:34:50 ДП
User 152745946
еще как тяжелая операция
09:35:13 ДП
User 152745946
это не преждевременная оптимизация. Это здравый смысл
09:35:29 ДП
User 23384802
export default class Test extends Component {
  test = (event, i) => {
    console.log(i)
  }

  render() {
    return <div onClick={event => this.test(event, 1)}/ >    
  }
}
09:35:33 ДП
User 23384802
вот маленький пример
09:36:26 ДП
User 23384802
как в данном случае передать параметр без создания новой функции в рендере. И без дата аттрибут
09:36:34 ДП
User 23384802
и сохранить евент
09:36:47 ДП
User 143141567
а что плохого в data атрибутах-то?
09:36:50 ДП
User 153807368
https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/jsx-no-bind.md
тут как раз говорят о таких случаях
советуют выносить в отдельный компонент
github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/jsx-no-bind.md
React specific linting rules for ESLint. Contribute to yannickcr/eslint-plugin-react development by creating an account on GitHub.
09:37:14 ДП
User 23384802
доставать из них - лишний код
09:37:31 ДП
User 143141567
две строчки
09:37:37 ДП
User 143141567
ну можно и одну даж
09:37:39 ДП
User 23384802
на 1 метод)
09:37:56 ДП
User 152745946
User 23384802
вот маленький пример
export default class Test extends Component {
  test = (event, i) => {
    console.log(i)
  }

  render() {
    return <Child onClick={this.test}  i={1} />    
  }
}

class Child extends Component {
  constructor(props) {
    super(props);

    this.onClick = this.onClick.bind(this);
  }

  onClick(event) {
    this.props.onClick(event, this.props.i);
  }

  render() {
    return (
      <div onClick={this.onClick} />
    );
  }
}
09:37:58 ДП
User 64167409
если у тебя рендер вызывается 100500 раз то вынос байнда тебя не спасет
09:38:10 ДП
User 143141567
можно написать один раз хэлпер, который будет возвращать все значения data атрибутов в виде объекта или еще чего
09:38:13 ДП
User 143141567
и не париться
09:38:44 ДП
User 152745946
а если бизнес-логика такая?
09:39:12 ДП
User 23384802
@gusnkt кул, а если надо в 1 компоненте?
09:39:22 ДП
09:39:24 ДП
User 23384802
бывает )
09:39:47 ДП
User 152745946
@anoru что надо в 1 компоненте?
09:40:10 ДП
User 23384802
хотя стоп, только сейчас прочитал
09:40:13 ДП
User 23384802
это не решает вопрос, что я писал
09:40:23 ДП
User 23384802
ты не можешь подставить переменную в строчке с дивом
09:40:35 ДП
User 23384802
опять же дата аттрибут надо)
09:40:45 ДП
User 152745946
зачем?
09:41:39 ДП
User 23384802
ну, есть у меня 5 дивов. Все они вызывают метод onClick допустим, который принимает event и какую-нибудь переменную - строка, например. 
Ты сам понимаешь зачем, дискасс идет о подходах кто какие юзает, например
09:42:15 ДП
User 152745946
не, хочешь - юзай data-attribute, просто это не всегда возможно
09:42:39 ДП
User 39182759
вот что вам пишет эта страничка? http://codepen.io/anon/pen/dMBXbJ?editors=1010#anon-login
codepen.io/anon/pen/dMBXbJ?editors=1010
...
09:42:41 ДП
User 152745946
а писать bind внутри render - говнокод
09:43:08 ДП
User 64167409
это не говнокод
09:43:12 ДП
User 143141567
User 39182759
вот что вам пишет эта страничка? http://codepen.io/anon/pen/dMBXbJ?editors=1010#anon-login
codepen.io/anon/pen/dMBXbJ?editors=1010
...
0.001724 millis
09:43:29 ДП
User 23384802
А бывалислучаи, когда onClick={event => this.test(event, i)} прямо тормозили апп? 
Ни разу не сталкивался. Ну,если там не 1000 перерендеров в секунду
09:43:29 ДП
User 39182759
ок, это среднее время создания функции, если я нигде не налажал
09:43:34 ДП
User 64167409
если у тя рендер вызывается 100500 раз - это говнокод
09:43:44 ДП
User 143141567
мне кажется лучше один раз в одном месте прибиндить все методы
09:43:47 ДП
User 39182759
1.5 микросекунды
09:43:50 ДП
User 153807368
User 143141567
0.001724 millis
0.000719 millis
09:44:00 ДП
User 152745946
то что ты не знаешь, как работает v8?)) у тебя эта функция вынесена наверх за цикл))
09:44:18 ДП
User 143141567
User 153807368
0.000719 millis
0.001528 millis второй раз уже проиграл(
09:44:32 ДП
User 152745946
User 64167409
если у тя рендер вызывается 100500 раз - это говнокод
еще раз, если это бизнес-логика? realtime данные
09:46:18 ДП
User 64167409
у тебя рендер вызываться будет из-за апдейта props, и не всегда изменения props будет влиять на то что компонент рендерит, в этом случае выигрыш даст shouldComponentUpdate или reselect в редакс, это если мы говорим о реальных приложениях
09:47:24 ДП
User 152745946
ты меня не слышишь)) Разные данные постоянно приходят, РАЗНЫЕ. Знаю я про shouldComponentUpdate
09:47:24 ДП
User 23384802
на codepen сломался логин через github(
09:48:09 ДП
User 23384802
впрочем через фейсбук тоже не работает
09:48:32 ДП
User 153807368
о чем спор то, господа
если узкое место - оптимизируй любыми способами
если нет - пиши как хочешь/как позволяет установленный codestyle
разве нет?
09:48:34 ДП
User 1340580
User 39182759
вот что вам пишет эта страничка? http://codepen.io/anon/pen/dMBXbJ?editors=1010#anon-login
codepen.io/anon/pen/dMBXbJ?editors=1010
...
0.000902 millis
09:49:04 ДП
User 1340580
User 39182759
вот что вам пишет эта страничка? http://codepen.io/anon/pen/dMBXbJ?editors=1010#anon-login
codepen.io/anon/pen/dMBXbJ?editors=1010
...
0.000412 millis
09:49:09 ДП
User 23384802
то что ты не знаешь, как работает v8?)) у тебя эта функция вынесена наверх за цикл))
09:49:21 ДП
User 23384802
codepen сломался, так что скопирую сюда
09:49:24 ДП
User 23384802
let a  = []
for(var i = 0; i<n;i++){a[i] = function(){console.log(this.a)}};
09:49:26 ДП
User 23384802
также
09:49:33 ДП
User 39182759
обновил кодпен
09:50:35 ДП
User 39182759
сделал вообще шайтанство, но все равно две микросекунды на создание объекта
09:50:35 ДП
User 1340580
User 39182759
обновил кодпен
0.001297 millis
09:50:37 ДП
User 153807368
User 153807368
0.000719 millis
0.001179 millis :(
09:50:53 ДП
User 1340580
User 39182759
обновил кодпен
0.000707 millis
09:50:58 ДП
User 39182759
в общем, не надо сюда постить результаты, просто примите к сведению, что это очень мало
09:51:07 ДП
User 1340580
User 39182759
сделал вообще шайтанство, но все равно две микросекунды на создание объекта
До этого было быстрее.
09:51:16 ДП
User 39182759
ну да, там еще один бинд
09:51:36 ДП
User 39182759
по факту наверное две функции теперь создается там
09:51:50 ДП
User 309556
я думал, что это все обсудили уже 100500 раз и забили как минимум год назад
09:51:55 ДП
User 309556
норм Денис вбросил
09:51:59 ДП
User 309556
сработало
09:52:09 ДП
09:52:26 ДП
User 309556
smm + 500
09:52:27 ДП
User 23384802
это как apple vs android. всегда актуально)
09:52:51 ДП
User 309556
я вот собрался виндофон брать
09:52:58 ДП
09:53:03 ДП
User 309556
как второй моб
09:53:08 ДП
User 153807368
User 309556
норм Денис вбросил
+1, последний час тоже самое думаю
09:54:00 ДП
User 153807368
/stat@comstatbot
09:55:11 ДП
User 309556
как на десктопе нормально цитировать?
09:56:14 ДП
User 4274761
даблклик для ответа
09:57:33 ДП
User 309556
User 4274761
даблклик для ответа
ооо спс
09:57:49 ДП
User 213704994
а у меня нормально не собирается с arrow function  + class.
Missing class properties transform.
09:57:58 ДП
User 309556
User 23384802
это как apple vs android. всегда актуально)
как мазик вс кетчуп вс вместе. вот что вечно актуально
10:01:30 ДП
User 198568579
/stat@comstatbot
10:02:39 ДП
User 185980313
User 213704994
а у меня нормально не собирается с arrow function  + class.
Missing class properties transform.
какой stage включен?
10:06:51 ДП
User 171203444
парни, скажите, а для children можно как то ref создать?
10:08:20 ДП
User 775925
```React.cloneElement(child, {ref: (el) => {}})```
10:13:27 ДП
User 213704994
User 185980313
какой stage включен?
stage0, причем указан после es2015/react, как надо
10:13:50 ДП
User 309556
психи
10:15:05 ДП
User 309556
кстати, stag0 + es2015 не включает es2016 же?
10:15:38 ДП
User 309556
драфт-то уже есть
10:17:38 ДП
User 185980313
какие новые фичи в 2016?
10:18:33 ДП
User 309556
экспоненшл оператор и .includes
10:19:22 ДП
User 309556
может быть добавят Object.values() Object.entries()
они тоже готовы
10:19:37 ДП
User 309556
но их не успели просунуть в мае в es2016
10:19:59 ДП
User 185980313
в общем, ничего сильно крупного не будет )
10:20:23 ДП
User 309556
в этом году наверняка в 4 войдут SIMD и async/await
10:23:02 ДП
User 185980313
SIMD - что то новое )
10:26:28 ДП
10:28:09 ДП
User 309556
тебе сколько лет?
10:28:32 ДП
User 309556
есть подозрение, что ты еще более новый
10:29:08 ДП
User 143141567
тож только сейчас прочитал про это SIMD) Молодые мы)
10:30:13 ДП
User 185980313
User 309556
есть подозрение, что ты еще более новый
У меня тоже такие подозрения
11:28:27 ДП
User 153807368
подскажите по react-router, как хендлить пути для изображений
есть такой роут
  <Route component={Root} path='/'>
    <Route component={ProjectsList} path='projects'>
      <Route component={ProjectCard} path=':projectId' />
    </Route>
  ...
и есть иконка в обоих компонентах <img src='images/icon.png'>
в ProjectsList - норм отображается
а в ProjectCard - браузер внезапно начинает искать иконку по пути 'projects/images/icon.png'
11:32:43 ДП
User 115288346
<img src='/images/icon.png'> - может так?
11:35:35 ДП
User 153807368
omg! похоже ты прав
11:40:39 ДП
User 4274761
кто-нибудь использует standardjs.com ?
очень нравится идея сделать единый стандарт и больше вопрос не поднимать.
не нравится в основном отказ от точки с запятой.
11:41:31 ДП
User 143141567
>2 spaces – for indentation
Чет уже не очень)
11:42:00 ДП
User 185980313
а в чем отличия от eslint ?
11:42:23 ДП
User 4274761
так это и есть eslint. здесь фишка в четко определенном code style
11:42:57 ДП
User 4274761
как утилиту я standard не рассматриваю, использую eslint-config-standard
11:47:32 ДП
User 115288346
Используем standard, удобно, красиво =)
11:48:05 ДП
User 4274761
User 115288346
Используем standard, удобно, красиво =)
по точкам с запятой не скучаете?)
11:48:19 ДП
User 115288346
неа, уже привыкли
11:48:46 ДП
User 4274761
еще немного смущает отказ от trailing comma в массивах/объектах, у меня коммиты с ними стали шелковистее
11:49:15 ДП
User 115288346
ну вот это да, я бы тоже не отказался)
11:51:17 ДП
User 185980313
2 пробела, нет ; и отказ trailing comma, странный стандарт =)
11:51:43 ДП
User 115288346
а чем так 2 пробела не нравятся?
11:52:27 ДП
User 143141567
User 115288346
а чем так 2 пробела не нравятся?
2 проблема как то мало, что ли)
11:52:36 ДП
User 143141567
пробела*
11:53:04 ДП
User 143141567
а кто-нибудь знает, как с веб версии редактировать сообщения?
11:53:12 ДП
User 1340580
Я и в аргументах функции запятые ставлю в конце, это же круто!
11:53:43 ДП
User 4274761
про отступы лучше не начинать, изъеденная тема без результата) лучше сразу соглашаться с тем code style что есть и не тратить время
11:55:16 ДП
User 775925
А что там с тернарными операторами? Разрешены ли множественные тернарные операторы?
11:55:59 ДП
User 4274761
User 775925
А что там с тернарными операторами? Разрешены ли множественные тернарные операторы?
не глядя скажу, что запрещены :)
11:56:23 ДП
11:57:05 ДП
User 185980313
а чем одинарные тернарные операторы плохи?
11:57:23 ДП
User 4274761
User 185980313
а чем одинарные тернарные операторы плохи?
вопрос про множественные был
11:57:36 ДП
User 4274761
бегло не нашел запрета, но все равно лучше не надо)
11:57:38 ДП
User 185980313
множественные да, спорно )
11:57:40 ДП
User 775925
Частенько пишу такое

return (
      isMain ? <Main /> :
isSubMain ? <SubMain /> :
                     <Empty />
)
11:57:55 ДП
User 775925
в рендере
12:00:05 ПП
User 119754639
User 775925
Частенько пишу такое

return (
      isMain ? <Main /> :
isSubMain ? <SubMain /> :
                     <Empty />
)
Я себе вспомогательную функцию написал.
12:00:49 ПП
User 775925
которая работает как модуль classnames?
12:00:57 ПП
User 143141567
User 775925
Частенько пишу такое

return (
      isMain ? <Main /> :
isSubMain ? <SubMain /> :
                     <Empty />
)
у меня на это два компонента, один рисует детей, если условие выполняется, другой, если нет
12:01:04 ПП
User 4274761
User 775925
Частенько пишу такое

return (
      isMain ? <Main /> :
isSubMain ? <SubMain /> :
                     <Empty />
)
<Empty /> реально пуст? чем лучше null?
12:01:20 ПП
User 143141567
+ есть и готовые библиотеки, видел даж плагин для babel
12:01:22 ПП
User 119754639
User 775925
которая работает как модуль classnames?
А как он работает? [].concat(classes).join(' ' )?
12:02:20 ПП
User 775925
classNames(styles.root, active && styles.active, {[styles.disabled] : disabled})
12:03:03 ПП
User 775925
что-то я совсем не о том способе подумал
12:03:21 ПП
User 143141567
хм, интересно а нормально будет использовать для этого Set? Там же ключем может быть об
12:03:25 ПП
User 143141567
объект*
12:04:09 ПП
User 143141567
функция принимает такой Set и возвращается только тот ключ, значение которого true
12:04:36 ПП
User 119754639
Может закидаете тухлыми помидорами, но почему бы и нет:
return (
  <div>
    {selection(
      x > y, () => <X />,
      y > x, () => <Y>,
      z > y && z < x, () => <Z />
    )}
  </div>
)
12:05:47 ПП
User 775925
User 143141567
функция принимает такой Set и возвращается только тот ключ, значение которого true
Если я тебя правильно понимаю, то ты имел в виду Map/WeakMap?
12:06:25 ПП
User 143141567
User 775925
Если я тебя правильно понимаю, то ты имел в виду Map/WeakMap?
Ах, да, именно, спасибо, что поправил. Не до конца еще разобрался с ними
12:07:43 ПП
User 775925
можно и с обычным массивом делать такое 
```
return ([
a >b && <A  key="1"/>,
a < b && <B  key="2"/>
])
12:08:42 ПП
User 775925
но это уже похоже на извращения (:
12:08:49 ПП
User 4274761
{ true: <Empty />, [isMain]: ()=> <Main/>, [isSubMain]: ()=> <SubMain /> }[true]()
12:10:38 ПП
User 119754639
User 775925
можно и с обычным массивом делать такое 
```
return ([
a >b && <A  key="1"/>,
a < b && <B  key="2"/>
])
Ну потом там надо будет сделать filter(x=>!!x).join('')?
12:12:49 ПП
User 185980313
User 4274761
{ true: <Empty />, [isMain]: ()=> <Main/>, [isSubMain]: ()=> <SubMain /> }[true]()
необычный способ, не знал что так можно )
12:13:09 ПП
User 171203444
еще очень тупой вопрос
12:13:15 ПП
User 171203444
А я как то могу отследить из внешнего компонента componentDidUpdate у внутреннего?
12:13:32 ПП
User 775925
подписки?
12:13:41 ПП
User 4274761
User 185980313
необычный способ, не знал что так можно )
Лучше все же проверить, работает ли он) а потом сразу же забыть))
12:14:09 ПП
User 775925
callback передай во внутренний и в componentDidUpdate вызывай его
12:14:12 ПП
User 185980313
User 4274761
Лучше все же проверить, работает ли он) а потом сразу же забыть))
проверил и удивился что работает
12:15:03 ПП
User 171203444
У меня есть компонент AppContainer, в нем хедер и children. По изменению чилдрена должен меняться стэйт у хедера.
12:15:11 ПП
User 171203444
User 775925
callback передай во внутренний и в componentDidUpdate вызывай его
Не очень понял как
12:17:01 ПП
User 775925
class ChildComponent {
  componentDidUpdate() {
    this.props.someFunc()
  }
}
.....
class Root {
  someFunc() {}

  render() { return <ChildComponent someFunc={this.someFunc} />}
}
12:20:10 ПП
User 164696606
главное в someFunc() к this не обращаться или делать так
someFunc = () => {}
12:22:51 ПП
User 164696606
или в конструкторе чайлда биндить функцию на родителя
12:25:36 ПП
User 143141567
или в конструкторе родителя биндить эту функцию
12:25:57 ПП
User 164696606
тоже вариант
12:27:28 ПП
User 164696606
собственно someFunc = () => {} в это и затранспайлится
12:53:29 ПП
User 117372400
Народ, кто за повышение качества средств разработки, проголосуйте за поддержку
PostCSS https://youtrack.jetbrains.com/issue/WEB-16601
Stylelint https://youtrack.jetbrains.com/issue/WEB-19737
в WebStorm :)
12:56:19 ПП
User 309556
лол это как можно сделать поддержку постцсс?
12:56:24 ПП
User 309556
нипанятна
12:57:14 ПП
User 39182759
слушайте, а есть какая-то тулза, чтобы отформатировать jsx?
12:57:42 ПП
User 39182759
или просто по правилам еслинта выставить отступы
12:58:24 ПП
User 56924675
https://github.com/yannickcr/eslint-plugin-react ?
github.com/yannickcr/eslint-plugin-react
React specific linting rules for ESLint. Contribute to yannickcr/eslint-plugin-react development by creating an account on GitHub.
01:11:04 ПП
User 775925
User 309556
лол это как можно сделать поддержку постцсс?
в рантайме на ноде запускать postcss (:
01:24:52 ПП
User 597730
Открываю для себя ES6 
Скажите пожалуйста, а как выводить в render() список айтемов, если он не в массиве, а в es6-ном Map() ?
Массив:
{ items.map((item, index) => { <ItemView item={item} key={index} /> }) }
А Map как ? Там нет метода .map()
01:27:10 ПП
User 185980313
можно не красиво, с помошью for of
01:27:19 ПП
User 164696606
items.entries().map()
01:27:41 ПП
User 164696606
но лучше хранить в массиве
01:28:45 ПП
User 597730
но entries() кажется дает массив из двух элементов, ключа и значения
01:28:53 ПП
User 185980313
или [...items].map
01:29:53 ПП
User 775925
Интересно что React.render поддерживет мапы, правда выводит предупреждение
01:29:55 ПП
User 597730
В массиве хранить, имхо, ничего нельзя, иначе выборка превратится из O(1) в O(n)
01:31:01 ПП
User 164696606
User 597730
но entries() кажется дает массив из двух элементов, ключа и значения
да, точно, главное что возвращается массив
01:31:24 ПП
User 775925
items.values()?
01:32:11 ПП
User 164696606
Immutablejs?
01:32:50 ПП
User 164696606
User 775925
items.values()?
ага :)
01:34:35 ПП
User 117372400
User 309556
лол это как можно сделать поддержку постцсс?
Тык нужна просто поддержка фич CSS4 =) https://github.com/stephenway/level4
github.com/stephenway/level4
level4 - Use W3C CSS Level 4 Modules Today with PostCSS
01:44:50 ПП
User 138612574
Ребят, кто в курсе, где можно найти какие то крутые тренинги по Реакту в Москве и Европе?
01:47:18 ПП
User 202047214
Первое, что пришло в голову, если учебник хороший у Кантора, то может и курсы такие же :) http://learn.javascript.ru/courses/react
learn.javascript.ru/courses/react
01:51:13 ПП
User 138612574
а что то покруче? эот совсем база
01:52:58 ПП
01:53:01 ПП
User 103130177
Круче только писать код. Потому что это не теория, это практика и только практика.
Потом можно юзать http://codereview.stackexchange.com/ чтобы по твоему коду "прошлись"
01:53:15 ПП
User 103130177
одно и тоже
01:55:01 ПП
User 103130177
я обычно ищу скринкасты и делаю то что мне надо когда его ставлю на паузу
01:55:08 ПП
User 103130177
можно на гитхабе поискать что-то
01:55:14 ПП
User 103130177
там много интересного типа https://github.com/tayiorbeii/egghead.io_redux_course_notes
github.com/tayiorbeii/egghead.io_redux_course_notes
Notes (and partial transcription) of Dan Abramov's Redux course videos on http://egghead.io - tayiorbeii/egghead.io_redux_course_notes
01:55:28 ПП
User 138612574
хочеться именно очно
01:55:29 ПП
User 103130177
позволяет быстро оценить объем информации
01:55:38 ПП
User 138612574
то что на на эгхеде ест ья в курсе
01:55:45 ПП
User 103130177
да реакт учится за 2 часа. Потом практика нужна.
01:56:03 ПП
User 103130177
А дальше только ваше умение строить приложение, компонент и все такое
01:56:28 ПП
User 103130177
этому не учат. Best практики можно поискать, но тут надо с головой подходить
01:57:11 ПП
User 138612574
я уже с год пишу банковское приложение =)  поэтому хочется найти че нить позабористей, а не базу))
01:57:47 ПП
User 103130177
позабористей - напишите веб-сервис простой, устройте себе хакатон.
01:57:48 ПП
User 138612574
какие то узкие места, реально какие то бест практис и тп
01:57:52 ПП
User 152745946
так это уже тебе надо тренинги проводить))
01:59:42 ПП
User 138612574
просто на подобных тренингах и конфах порой обсуждаются какие то внутряки, которые так не заметны на поверхности
02:29:19 ПП
User 309556
User 117372400
Тык нужна просто поддержка фич CSS4 =) https://github.com/stephenway/level4
github.com/stephenway/level4
level4 - Use W3C CSS Level 4 Modules Today with PostCSS
но это же не одно и то же)
02:29:31 ПП
User 309556
но мысль понял
02:30:40 ПП
02:30:51 ПП
02:33:47 ПП
User 187983007
Ребят, кто знает есть ли телеграм или какой-нибудь гиттер(скайп чат и т.д.) по loopback?
02:34:19 ПП
User 187983007
точнее все кроме гиттера
02:37:10 ПП
User 185924408
User 187983007
Ребят, кто знает есть ли телеграм или какой-нибудь гиттер(скайп чат и т.д.) по loopback?
странно что предпочитаешь скайп чат гиттеру
03:03:40 ПП
User 187983007
мне намного удобнее в скайп-чате общаться
03:04:39 ПП
User 309556
@DenisIzmaylov вы там афтепатить не собираетесь ли после митапа?
03:04:57 ПП
User 309556
а то я только сегодня ночью в вейтлист записался лол
03:06:16 ПП
User 55341513
Vladimir Makhaev
Да, в часов 9-10 скорее всего. Предлагаю пойти в мексиканскую кафешку, как обычно. Amigo Migel. 
Ленинградский просп., 47
03:06:41 ПП
User 55341513
со страницы митапа
03:07:16 ПП
User 4627228
Да, кто захочет, после пиццы можно будет на афтепати :)
03:08:52 ПП
User 4627228
MIND, библиотека доступных элементов интерфейса eBay: описание https://ebay.gitbooks.io/mindpatterns/content/ и примеры http://ianmcburnie.github.io/mindpatterns/
03:09:05 ПП
User 4627228
Про паттерны много всего там
03:19:50 ПП
User 4274761
о, афтепати хорошо) на митапе мне сказать нечего, а посмотреть на живых профессиональных программистов хочется, у нас в маленькой компании я такой один %)
03:20:48 ПП
User 4627228
Если ты самый умный в комнате, значит ты не в той комнате ;)
03:25:01 ПП
User 104477
User 4627228
MIND, библиотека доступных элементов интерфейса eBay: описание https://ebay.gitbooks.io/mindpatterns/content/ и примеры http://ianmcburnie.github.io/mindpatterns/
Паттерны -- хорошо, а насколько усложняет жизнь соответствие гайдлайнам по accessibility? Понятно, что есть достаточно простые вещи вроде использования нативных элементов и поведения браузеров, но насколько сложно построить, к примеру, интерфейс, полностью независимый от тача/мышки?
03:57:33 ПП
User 152745946
дофига сложно с мышкой/тачем)) А ты такое спрашиваешь)
04:06:26 ПП
User 192559518
приглашаю вас на мой мастер-класс посвященный современным технологиям GraphQL и Relay
за время мастер-класса вы научитесь работать с этим стеком и поймете каким образом это может помочь вам в вашей работе
если вы заинтересованны, то прошу проголосовать на странице всех МК за лучшие из них http://devconf.ru/ru/offers/mk
04:07:42 ПП
User 309556
Ты ж на митапе
04:08:05 ПП
User 309556
Андрюша там?
04:08:36 ПП
User 309556
Мне ему надо денег зарядить на ящик панк ипы
04:09:50 ПП
User 75945488
а ящик хардор ипы можно где-нить цепануть?
04:12:27 ПП
User 309556
Это проще чем панк
04:12:59 ПП
User 75945488
а где это сделать?
04:14:03 ПП
User 309556
В любом магазине
04:14:29 ПП
User 309556
Его не так разбирают
04:15:42 ПП
User 75945488
ну ящиками не везде есть
04:16:17 ПП
User 309556
На пятницкий есть
04:18:13 ПП
User 309556
на родном рынке
04:18:19 ПП
User 309556
Рыбном
04:19:15 ПП
User 309556
В мытищах база есть
04:19:50 ПП
User 309556
Там всегда есть хардкор и дед пони
04:20:16 ПП
User 309556
Панк ипу только на заказ
04:21:19 ПП
User 309556
В пакетиках по всему городу есть хардкор
04:21:26 ПП
User 309556
Пивотеках
04:21:44 ПП
User 309556
Сраный раздолбаный айфон(
04:22:28 ПП
User 75945488
спасибо
04:23:27 ПП
User 309556
Ю а велкам
04:51:23 ПП
User 192559518
Андрюша тут
05:35:31 ПП
User 108543364
А подскажите по редаксу, я могу сделать несколько синхронных диспатчей, и при этом у меня произойдет один mapStateToProps?
06:05:10 ПП
User 153807368
User 309556
В пакетиках по всему городу есть хардкор
Норкоманы штоле?
06:09:22 ПП
User 152745946
User 108543364
А подскажите по редаксу, я могу сделать несколько синхронных диспатчей, и при этом у меня произойдет один mapStateToProps?
Да. Там же setstate у коннекта
06:12:39 ПП
User 108543364
User 152745946
Да. Там же setstate у коннекта
Так mapstatoprops делается на каждый диспатч или через set immediate?
06:56:58 ПП
User 309556
Скажите пароль от вайфай плз
06:57:58 ПП
User 192559518
MR_Guest GuestMail
07:47:30 ПП
User 108543364
Такой вопрос: я использую реакт-роутер и редакс. При изменении пути, я получаю новые пропсы в компонент, срабатывает willReceiveProps, в котором я вызываю какой то обработчик, который тоже аффектит пропсы через mapStateProps, и опять вызывается willReceiveProps. Как того можно избежать или как с этим жить?
07:48:18 ПП
User 125547436
изменяй state
07:48:22 ПП
User 125547436
получай props
07:48:32 ПП
User 108543364
я так и делаю
07:49:02 ПП
User 125547436
ну в смысле не трогай пропсы, запиши их в стейт и делай setState
07:49:11 ПП
User 108543364
проблема в том, что у меня два раза вызывается willReceiveProps и в нем срабатывает одна и та же логика
07:49:30 ПП
User 108543364
User 125547436
ну в смысле не трогай пропсы, запиши их в стейт и делай setState
ну хер знает
07:51:03 ПП
User 152745946
shouldComponentUpdate
07:51:14 ПП
User 125547436
дану вы что это костыли же все
07:51:26 ПП
User 125547436
willRecieveProps там бери пропсы делай что хочешь и делай setState
07:51:32 ПП
User 125547436
а в render работай уже со стейтом
07:52:00 ПП
User 125547436
пропсы нельзя менять, только получать, читать и юзать в рендере. Хочешь менять — вот тебе стейт
07:52:41 ПП
User 23384802
какой стейт,если речь о redux)
07:52:53 ПП
User 125547436
речь о реакт, але
07:53:26 ПП
User 125547436
если редукс, то в willRecieveProps диспатч экшн
07:53:28 ПП
User 125547436
если на то пошло
07:53:30 ПП
User 23384802
он в componentDidMount диспатчит метод apiGetPosts, например. Далее срабатывает connect и пропсами прокидываются данные полученные
07:53:38 ПП
User 108543364
User 125547436
если редукс, то в willRecieveProps диспатч экшн
так оно и делается
07:53:44 ПП
User 23384802
об этом речь. Но я не вижу ничего плохого в двойном рендере в данном случае. Хотя можно вынести в роутер, конечно
07:54:06 ПП
User 152745946
User 125547436
если редукс, то в willRecieveProps диспатч экшн
вот кстати хороший вопрос
07:54:07 ПП
User 108543364
User 23384802
об этом речь. Но я не вижу ничего плохого в двойном рендере в данном случае. Хотя можно вынести в роутер, конечно
тут не двойной рендер, а двойно вызов willreceiveprops
07:54:18 ПП
User 125547436
да, я понял. ща
07:54:30 ПП
User 108543364
я просто делаю несколько синхронных диспатчей друг за другом
07:54:30 ПП
User 152745946
у меня при маунте компонента должен меняться state и мне react орет, что я setState во время рендера дергаю
07:54:31 ПП
User 23384802
Можно вызвать в роутере при вставке компонента. Если данные придут, то отрендерить его
07:54:34 ПП
User 152745946
как этого избежать?
07:54:34 ПП
User 125547436
а тебе вне компонента нужны эти пропсы?
07:54:55 ПП
User 23384802
перенести в конструктор
07:55:12 ПП
User 125547436
ну да, конструктор
07:55:27 ПП
User 23384802
там правда будет не this.setState({, а this.state =
07:55:30 ПП
User 152745946
в конструкторе и есть
07:55:34 ПП
User 108543364
this.props.fetchPosts()
this.props.fetchUsers()
07:55:41 ПП
User 152745946
не, я кидаю экшн, вот в чем дело
07:55:44 ПП
User 23384802
тогда зачем в didMount ставить setState?
07:55:46 ПП
User 108543364
User 108543364
this.props.fetchPosts()
this.props.fetchUsers()
вот такой код в willReceiveProps
07:56:16 ПП
User 152745946
по хорошему это надо делать в onEnter внутри роута, но onEnter не срабатывает, если пользоваться браузерной history
07:56:35 ПП
User 23384802
в didMount не надо устаналвиать стейт никогда. Только в конструкторе.
07:56:46 ПП
User 125547436
а componentDidMount ?
07:57:36 ПП
User 152745946
componentDidMount можно, но тогда 1 рендер будет, фактически, лишний. Пустой
07:59:08 ПП
User 125547436
User 108543364
вот такой код в willReceiveProps
асинхронщина? в componentDidMount я бы вызвал
07:59:19 ПП
User 125547436
в это время лоадер отрендерить и все такое.
08:00:19 ПП
User 125547436
а если синхронный, то в конструкторе
08:00:45 ПП
User 108543364
User 125547436
асинхронщина? в componentDidMount я бы вызвал
лоадер рендерится через пропсы, которые прокидываеются через mapStateToProps
08:01:07 ПП
User 23384802
почему в конструкторе только ассинхронный?
08:01:14 ПП
User 125547436
наоборот
08:01:17 ПП
User 23384802
ой, наоборот
08:01:23 ПП
User 23384802
ну не суть. почему такие ограничения)
08:01:33 ПП
User 125547436
хотя да, ты прав
08:01:49 ПП
User 125547436
я просто использую didMount чтобы убедиться, что это клиент, а не сервер
08:02:51 ПП
User 23384802
ну, тут главное просто придерживаться единого стиля в проекте. Кто-то в конструкторе, кто-то в cwrp, кто-то в cdu. По скорости разница настолько незначительная, что можно не обращать внимание
08:03:14 ПП
User 125547436
с receiveProps как раз рекурсия такая возникает с redux
08:03:28 ПП
User 125547436
там удобно со стейтом компонента работать
08:03:40 ПП
User 23384802
без условия да)
08:04:03 ПП
User 108543364
User 125547436
с receiveProps как раз рекурсия такая возникает с redux
+1
08:04:21 ПП
User 125547436
User 108543364
+1
короче не испольщуй willReceiveProps
08:04:43 ПП
User 125547436
или ставь флаг в стейте редакса
08:04:51 ПП
User 125547436
что мол загружено, спасибо, больше не надо )
08:04:57 ПП
User 125547436
но это так себе
08:05:33 ПП
User 23384802
у yfc в проекте willReceieveProps вооьбще нигде не используется)
08:05:39 ПП
User 23384802
только конструктор и didMount
08:05:43 ПП
08:05:56 ПП
User 23384802
с самого начала не нравился :)
08:06:25 ПП
User 125547436
он помогает отловить нужные пропсы, когда компонент уже замонтирован
08:06:56 ПП
User 23384802
didUpdate'а хватает
08:07:32 ПП
User 108543364
User 23384802
у yfc в проекте willReceieveProps вооьбще нигде не используется)
а как например при изменении url-параметров вы извлекаете новые данные?
08:09:03 ПП
User 125547436
связать redux с рутером
08:09:04 ПП
User 23384802
в didUpdate, ну это вкусовщина уже по выбору
08:09:30 ПП
User 108543364
User 125547436
связать redux с рутером
оно связано же :)
08:11:05 ПП
User 125547436
ммм. У меня асинхронные запросы сделаны в редакс мидлварине. Достаточно задиспатчить экшн с нужными параметрами. Так вот когда рутер меняет параметры, диспатчится экшен. И компоненту просто приходят уже пропсы с данными.
08:11:27 ПП
User 125547436
то есть компонент не участвует в запросах. Он только отображает что ему дали
08:12:25 ПП
User 23384802
думаю, так у всех сделано
08:13:39 ПП
User 125547436
и есть для этого модули, вроде redux-router или как-то так
08:13:50 ПП
User 125547436
или react-router-redux
08:14:15 ПП
User 108543364
User 125547436
ммм. У меня асинхронные запросы сделаны в редакс мидлварине. Достаточно задиспатчить экшн с нужными параметрами. Так вот когда рутер меняет параметры, диспатчится экшен. И компоненту просто приходят уже пропсы с данными.
т.е. ты слушаешь события redux-react-router и диспатчишь запросы?
08:14:22 ПП
08:14:27 ПП
08:14:33 ПП
User 108543364
а можно взглянуть?
08:14:45 ПП
User 108543364
просто в редьюсерах нельзя ж логику писать
08:15:09 ПП
User 125547436
щас гляну, минуту
08:26:43 ПП
User 125547436
ага, хер. Все не так. Покопался повспоминал
08:26:55 ПП
User 125547436
от redux-react-router отказался в итоге
08:28:02 ПП
User 125547436
и, сюрприз, в корневом компоненте в willRecieveProps сравниваю this.props.params рутера, и если разнится, то экшн криейтер разбирает параметры и диспатчит все что нужно.
11:29:51 ПП
User 4627228
Репост из @nodejs_ru :)
11:29:51 ПП
User 4627228
Друзья, спасибо, что вы были! Отдельное спасибо докладчикам - Артуру Биру, Владимиру Курчаткину и Вадиму Жуланову за хорошие и разнообразные доклады. Это был успешный эксперимент, фидбэк учтём. :)
11:46:30 ПП
User 4627228
/off Сорри да, постоянно путаю канал :) Спасибо, что поправляете