@react_js

Страница 79 из 5115
Konstantin
04.05.2016
09:51:10
Пока что в Universal Router-е нет ничего относящегося к React-е, я планирую добавить туда boilerplate для рендеринга реакт приложения как расписано в этом PR https://github.com/kriasoft/react-starter-kit/pull/613 (на этой или след. неделе)

вместо import { match } from 'universal-router'; будет import { createRouter } from 'universal-router/react' - который использует match() из базовой либы

Aleksey
04.05.2016
10:07:42
@koistya Посоветуй, как держать starterkit в актуальном состоянии? Историю гита я удалил, добавил remote ветку, слежу за изменениями, в случае если они мне нужны – мержусь, правильно?

Konstantin
04.05.2016
10:08:51
Если историю гита удалить, врид ли получится автоматом смёрджить обновления, я так не пробовал

Google
Konstantin
04.05.2016
10:09:44
Как вариант, можно ещё настроить Beyond Compare или похожую утилиту, чтобы она сравнивала нужные файлы из двух папок react-starter-kit <=> my-project

Aleksey
04.05.2016
10:12:03
Я тоже думал в сторону Beyond Compare, но с гитом мне кажется удобнее, нужны изменения – забрал их себе.

Они автоматом прилетают.

Konstantin
04.05.2016
10:12:51
Я обычно начинаю новый проект как клон master ветки —single-branch $ git clone -o react-starter-kit -b master —single-branch \ https://github.com/kriasoft/react-starter-kit.git MyApp $ cd MyApp И потом, когда нужно смёрджить обновления из RSK в проект $ git checkout master $ git fetch react-starter-kit $ git merge react-starter-kit/master $ npm install

Aleksey
04.05.2016
10:14:34
Ага. В любом случае история RSK и MySuperApp будет вперемешку, да?

Konstantin
04.05.2016
10:15:57
Угу, это минус..

для своих личных side-проектиков нормуль

Aleksey
04.05.2016
10:16:42
По поводу сингветки – не всегда удобно, например есть feature/redux – его в мастере пока нет, но видно что он уже завершен, да и не факт что в мастер попадет.

Denis
04.05.2016
10:53:56
А почему бы не git remote?

Кстати, зацените: https://github.com/FredKSchott/fflip Working on an experimental new design? Starting a closed beta? Rolling out a new feature over the next few weeks? Fa-fa-fa-flip it! fflip gives you complete control over releasing new functionality to your users based on their user id, join date, membership status, and whatever else you can think of. fflip's goal is to be the most powerful and extensible feature flipping/toggling module out there.

Aleksey
04.05.2016
10:58:51
А почему бы не git remote?
Срет в историю проекта :D Как только смержишься – получишь всю историю RSK.

Google
Denis
04.05.2016
11:01:32
Даже непонятно, плюс это или минус :) Разве Костин способ этого не сделает?

Aleksey
04.05.2016
11:03:37
Сделает.

git merge --squash
Спасибо, сейчас проверю.

Denis
04.05.2016
11:07:59
Только надо раза 2 померджить, чтобы протестить этот workflow: что не вылазит конфликтов на ровном месте

Aleksey
04.05.2016
11:10:20
Только надо раза 2 померджить, чтобы протестить этот workflow: что не вылазит конфликтов на ровном месте
IT'S WORKS!11 Спасибо, не знал о такой фиче. Сейчас еще пару вариантов попробую.

Denis
04.05.2016
11:17:11
?

Oleh
04.05.2016
12:31:12
Ребят, а разве componentWillReceiveProps вызывается при setState?

делаю такое this.setState({ logs: this.state.logs.concat(newLog), isLogInvalid: false })

и срабатывает метод componentWillReceiveProps

он же вызывается только при прокидывании новых пропсов

Алексей
04.05.2016
12:34:27
Нет

Там даже статья есть

О том, что в этой функции props могут придти те же самые

Oleh
04.05.2016
12:35:06
есть ссылочка?

Алексей
04.05.2016
12:35:10
секунду

Oleh
04.05.2016
12:35:33
а, ну погоди, конечно могут прийти

такие же пропсы

Алексей
04.05.2016
12:35:40
http://facebook.github.io/react/docs/component-specs.html это по методам

Oleh
04.05.2016
12:35:46
но это если вызывается рендер его родителя

Алексей
04.05.2016
12:35:50
http://facebook.github.io/react/blog/2016/01/08/A-implies-B-does-not-imply-B-implies-A.html а это конкретно по вопросу

Google
Oleh
04.05.2016
12:35:54
а так не будет

я все равно не пойму, почему setState компонента вызывает componentWillReceiveProps на нем же

пропсы то не меняются

Aleksey
04.05.2016
12:40:57
А можно пример на codepen который это демонстрирует?

Oleh
04.05.2016
12:41:46
не пробовал в песочнице с этим играться еще пока что

нужно попробовать

anoru
04.05.2016
12:43:43
@oleh_semenovich из любопытсва проверил на нашем проекте,т.к. удивился, что не знал это

такого нет. У тебя есть componentDidUpdate?

Oleh
04.05.2016
12:43:56
нет

anoru
04.05.2016
12:44:03
мне кажется, что вызывается уже он, а тот вызывает экшен

componentWillReceiveProps(nextProps) { console.log('test'); } handleClickOutside = () => { console.log('change state'); this.setState({ showSocialList: false }); };

test не вызывается

Oleh
04.05.2016
12:45:12
я походу понял в чем дело

сейчас даже обьясню

anoru
04.05.2016
12:45:46
интересно

Aleksey
04.05.2016
12:46:24
Диспатчишь что-то что меняет стор на который подписаны родительские компоненты которые прокидывают пропсы? :D

Oleh
04.05.2016
12:48:16
у меня есть массив обьектов и по нажатию на кнопочку добавляю еще 1 в массив, но изначально массив в стейт в конструкторе присваевается из пропсов, так как я не делал клон массива, он остался ссылкой на этот же массив в родителе. Я его в сетстейте меняю, и он получается меняет родительский массив, хотя нет...сейчас подумал что как раз в родительском остается тот же массив=(

Алексей
04.05.2016
12:48:46
проверь, с этими ссылками вообще беда

не давно для себя открыл, что {...obj} не всегда работает так как нужно, сам то объект скопируется по значению, но если один из его ключей объект

он скопируется по ссылке

Google
Алексей
04.05.2016
12:50:02
пару раз спотыкался на этом

Aleksey
04.05.2016
12:50:22
Клонить для надежности?

Oleh
04.05.2016
12:50:41
ну типа иммутабельность

Anton
04.05.2016
12:50:57
Вобще сама идея клонировать в стейт массив из пропсов выглядит как-то

Admin
ERROR: S client not available

Oleh
04.05.2016
12:51:04
я вот об этом же подумал

я и не клонил

подумал, что в этом может быть проблема

anoru
04.05.2016
12:51:47
это как дефолтстейт )

Oleh
04.05.2016
12:52:15
я иногда так делаю, но в редких кейсах

anoru
04.05.2016
12:52:55
@oleh_semenovich у тебя, случайно, не mobx?

Oleh
04.05.2016
12:53:01
не

anoru
04.05.2016
12:54:24
Как починишь - расскажи что было. Или сделай маленький пример в песочнице)

Oleh
04.05.2016
12:54:28
смотрите, сбрасываю всю функцию обработчик: createEmptyLog = () => { if (!this.state.logs.find((l)=>!l.project || !l.timeAmount)) { const newLog = this.props.createEmptyLog(this.props.params.date); this.setState({ logs: this.state.logs.concat(newLog), isLogInvalid: false }) } else { this.setState({ isLogInvalid: true }) } };

здесь ничего такого нет

то есть по сути происходит сет стейт параметров

и все

anoru
04.05.2016
12:55:20
this.props.createEmptyLog

Google
anoru
04.05.2016
12:55:21
а это что?

Oleh
04.05.2016
12:55:30
функция createEmptyLog возвращает обьект

и все

anoru
04.05.2016
12:55:34
думаю, из-за него перерендеривается родитель

Oleh
04.05.2016
12:55:43
она не меняет ни стейт ни пропсы

createEmptyLog = (date) => { return { status: 'in progress', timeAmount: 0, project: null, date: moment(date).format('MM/DD/YYYY'), user: this.props.user, comment: '' } };

вот текст той функции

anoru
04.05.2016
12:56:35
componentDidUpdate точно нет?

Oleh
04.05.2016
12:56:41
точно

anoru
04.05.2016
12:56:45
а как выглядит сама ссылка, которая вызывает

Oleh
04.05.2016
12:57:20
ты имеешь ввиду jsx?

<FlatBtn label={'ADD LOG'} onClick={this.createEmptyLog} primary={true} customStyle="customPrimaryStyle" />

Anton
04.05.2016
12:57:34
Ребята

не давно для себя открыл, что {...obj} не всегда работает так как нужно, сам то объект скопируется по значению, но если один из его ключей объект
Я вот думаю, что это за кейс, где ключами являются другие объекты, и не могу придумать кейс, когда это можно использовать

К тому же, если вдруг возникла необходимость использовать оюъекты-ключи - есть WeakMap

anoru
04.05.2016
13:00:02
ты имеешь ввиду jsx?
а FlatBtn это твой компонент или какой-нибудь фреймворк с компонентами?

Oleh
04.05.2016
13:00:13
мой

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