
Nikita
02.12.2016
11:10:42

KlonD90
02.12.2016
11:10:44

Дмитрий
02.12.2016
11:10:56
Отлично, срочно в прод!

Nikita
02.12.2016
11:10:56

Google

Александр
02.12.2016
11:10:59
Привет, ребят, кто может подсказать, оч странная штука происходит — есть элемент <Post />, который коннектится к redux через connect. Если у Post есть replies, то внутри него рисуются такие же Post в количестве replies. Все работает ок до тех пор пока не начинают отрисовываться сами реплаи. Они отрисовываются через replies.map(() => <Post>), само собой, со всеми необходимыми пропсами. Но в дочерних <Post>, именно тех, что маппятся, коннекта к редуксу не происходит. С чем может быть связано и что гуглить?

from
02.12.2016
11:11:04

Владислав
02.12.2016
11:11:43
я не понимаю, что это за магия такая

Nikita
02.12.2016
11:12:01
покажи компонент)
в коллбек приходит последний стейт, по идее

from
02.12.2016
11:13:23

Nikita
02.12.2016
11:14:13
а есть еще варик

Владислав
02.12.2016
11:14:16

Nikita
02.12.2016
11:14:24
document.querySelector('.input').value
везде работает!
или даже круче. findDOMNode(this).querySelector('input').value

Google

Владислав
02.12.2016
11:16:26
два разных объекта в консоли
в том плане, что this.state так и остался старым (:

Brs
02.12.2016
11:17:11
может у тебя в методе this не тот?

Владислав
02.12.2016
11:17:35
?

Vlad
02.12.2016
11:18:25
а зачем this.state в setState?
setState - всё равно мёржит состояния а не заменяет

Владислав
02.12.2016
11:18:49

Nikita
02.12.2016
11:19:49
интересно, если scu = () => false, при setState коллбэк вызовется?

Eugene
02.12.2016
11:21:45

Vlad
02.12.2016
11:22:26
$ajax.post url, components.map (component) => component.state
псевдокод конечно

Eugene
02.12.2016
11:23:49

Alexander
02.12.2016
11:23:56
Но вообще, если нужно использовать текущий стейт в setState, можно еще так делать
this.setState(state => ({
visible: !state.visible,
});

Nikita
02.12.2016
11:23:57

Владислав
02.12.2016
11:25:06
Похоже, я нашел, в чем проблема. У меня там много асинхронных обновлений, и, похоже, они конфликтовали с setState по времени

from
02.12.2016
11:25:58
и вообще dom api у форм и инпутов очень неплохой
Я раньше восхищался тем, сколько всего полезного ангуляр позволяет с формами делать
А теперь вижу, что браузеры поддерживают почти всё необходимое: pattern атрибут, метод checkValidity, :invalid псевдоселектор. Больше даже вроде не нужно ничего)

Eugene
02.12.2016
11:35:56

Сергей
02.12.2016
11:36:22
бинды это плохо

Nikita
02.12.2016
11:36:41
чувак тебе сказали как нормально))

Google

Сергей
02.12.2016
11:36:51
в последней версии реакта ref должно быть функцией

Nikita
02.12.2016
11:36:51
либо пробрасывай наверх значение
либо пробрасывай defaultValue + name и сериализуй через form-api
все остальное - больная фантазия и так делать не нужно. или тихо, чтобы никто не видел

Eugene
02.12.2016
11:37:43
Понял, буду разбираться, спасибо)

from
02.12.2016
11:50:33

Eugene
02.12.2016
12:10:57

Сергей
02.12.2016
12:12:33
разумеется!

Eugene
02.12.2016
12:13:09
?
Я просто где-то читал, что советуется как можно реже использовать state :(

from
02.12.2016
12:14:27

Eugene
02.12.2016
12:15:35

Timur
02.12.2016
12:40:07
Народ, что значит эта запись?
{...todo}
Я знаю, что в ECMAScript 6 есть такая запись для массивов
[...todo]
Но в случае с объектом, IDE показывает ошибку

Vladimir
02.12.2016
12:40:56
Google: spread/rest operator es6

Andrew
02.12.2016
12:40:57
пробел убери

Timur
02.12.2016
12:41:29

? ethorz
02.12.2016
12:41:33

Andrew
02.12.2016
12:41:43
что за IDE ?

? ethorz
02.12.2016
12:41:58
https://learn.javascript.ru/destructuring
прочти

Google

Timur
02.12.2016
12:42:13
NetBeans самая последняя тестовая версия, поддержка ECMAScript 6 имеется, даже некоторые фичи из 7 есть

Vladimir
02.12.2016
12:42:16
да он прочел, у него иде ошибку показывает:)

? ethorz
02.12.2016
12:42:49
хм

Andrew
02.12.2016
12:42:51
в netBeans не подскажу, сорян

Сергей
02.12.2016
12:43:37
типа Object.assign({}, todo)

Timur
02.12.2016
12:44:51
А, все, понял. Это чисто проблема NetBeans, надо написать багрепорт. Уже было такое, когда нормально не поддерживались классы ECMAScript 6, написал багрепорт, в тот же день исправили.
const TodoList = ({ todos, onTodoClick }) => (
<ul>
{todos.map(todo =>
<Todo
key={todo.id}
{...todo}
onClick={() => onTodoClick(todo.id)}
/>
)}
</ul>
)
Не могу разобрать, что тут происходит, конкретно внутри тегов <ul>.
1) Для чего всё что внутри <ul> обёрнуто в фигурные скобки?
2) Что значит {...todo} внутри класса <Todo />?
Даже если вместо {...todo} написать Object.assign({}, todo), мне все равно не понятно, что это значит.

Admin
ERROR: S client not available

Vlad
02.12.2016
13:11:58
1) посмотри как jsx код js вставляется
2) это развёртка объекта на параметры в функцию

Timur
02.12.2016
13:12:51
А, понял, скобки для вставки Js, вспомнил.
2) Развертка объекта - это понятно. Как сказал Сергей Сова выше, в данном случае это просто копия объекта, тогда для простоты перепишу код вот в этом виде:
const TodoList = ({ todos, onTodoClick }) => (
<ul>
{todos.map(todo =>
<Todo
key={todo.id}
{1: 'name', 2: 'surname'}
onClick={() => onTodoClick(todo.id)}
/>
)}
</ul>
)
Что это значит? Можно ли так писать?

Vlad
02.12.2016
13:18:59
нет :)

Mike
02.12.2016
13:22:25

Сергей
02.12.2016
13:22:40
const a = {…b, c}
это ни что иное
const a = Object.assign({}, b, {c})

Mike
02.12.2016
13:24:46
понял о каком контексте использования идет речь

Timur
02.12.2016
13:27:40
Как можно еще записать эту запись?
<Display {...props} />
Если props = {name: 'Timur', surname: 'Murtukov'}

from
02.12.2016
13:28:28

Google

from
02.12.2016
13:28:46
и это не то же самое, хотя результат тот же

Mike
02.12.2016
13:28:47

Сергей
02.12.2016
13:28:49
<Display name={props.name} surname={props.surname} />

Mike
02.12.2016
13:29:12
const { name, surname } = this.props;
<Display name={name} surname={surname} />

Timur
02.12.2016
13:29:23
Насколько я понял, это фича самого React, а не js. Я имею ввиду запись
<Display {...props} />

Дмитрий
02.12.2016
13:47:39
Нет
Это фича бабеля, а в будущем и js
Object spread
Вечно их путаю

Timur
02.12.2016
13:48:38
Ну, сказать, фича бабеля, наверное не верно, скорее фича ECMAScript 7

Дмитрий
02.12.2016
13:49:03
пока это строго фича бабеля

Сергей
02.12.2016
13:49:13
вот именно {…some} это предложение в ECMA

Дмитрий
02.12.2016
13:49:21
Завернут формат и всё, нет фичи
А в ES7 его уже нет
Изначально)
В js это всё пока в будущем времени

Timur
02.12.2016
13:51:54
хорошо, по порядку. Допустим это фича ECMA, не важно.
Тогда, отбросив в сторону реакт, как можно записать вот это?
var test = {...someVariable}
Если someVariable = {name: 'Andrey', surname: 'Sidorov'}

Dmitriy
02.12.2016
13:54:07
Выше же писали уже const a = Object.assign({}, someVariable)

Дмитрий
02.12.2016
13:55:18

Алексей
02.12.2016
13:55:45
на реакте ни кто постоянку не ищет?