
AlexAnder
25.07.2018
15:22:22
я делаю типо свой сваггер
который есесна часто обновляется
(относительно часто)

Google

AlexAnder
25.07.2018
15:22:22
и выглядит примерно так:

sk
25.07.2018
15:27:41
https://pastebin.com/VarnDqLq
в initNews выскакивает ошибка с сообщением Network Error, как это исправить?

Victor
25.07.2018
15:28:35
Коллеги, как правильно реализовать вызов функции внешней библиотеки, который происходит при обновлении стора? Компонент, в рендере которого вызов функции и return null ?

from
25.07.2018
15:29:15

Victor
25.07.2018
15:30:16
У меня есть внешняя библиотека - график. И по изменению данных в сторе (редакс сторе) я хочу передавать этой библиотеке эти изменённые данные.
в сторе selectedCurrency, а хочу после изменения этого значения вызывать chart.select(selectedCurrency)

Duego
25.07.2018
15:36:42
Есть такая разметка
<RadioGroup name="name">
<Radio />
<Radio />
</RadioGroup>
как из RadioGroup прокинуть name в Radio?

Alexey
25.07.2018
15:37:49

Victor
25.07.2018
15:38:11

Alexey
25.07.2018
15:38:11
Ну и вокруг чарта обертку сделать

Victor
25.07.2018
15:38:27
мне не нужно DOM обновлять, а только функцию вызывать

Google

Yura
25.07.2018
15:38:31
const name = 'name'
...
<RadioGroup name={name}>
<Radio name={name}/>
<Radio name={name}//>
</RadioGroup>

Victor
25.07.2018
15:38:53
и я хочу вызывать эту функцию при изменении значения в сторе

Duego
25.07.2018
15:39:03
Так я специально обертку создал, чтобы в каждый отдельно не прокидывать, иначе смысла в ней нет)
Верю что как то можно в children прокинуть дальше

Alexey
25.07.2018
15:40:04

Cenator
25.07.2018
15:40:37
const RadioGroup = ({ name, children }) => children({ nameProp: name })

Victor
25.07.2018
15:41:26

Dima
25.07.2018
15:41:26
у кого то были проблемы с <script type="text/babel"> Sublime
код не хайлайтится внутри html?

Cenator
25.07.2018
15:41:38

Victor
25.07.2018
15:41:44
я тогда создам отдельный компонент и буду в рендере вызывать функцию

Dima
25.07.2018
15:42:37
cпасибо

Duego
25.07.2018
15:43:06

Cenator
25.07.2018
15:43:14

Vadim
25.07.2018
15:43:36
Кто нибудь воевал с высотой 100vh в мобильных браузерах?

Duego
25.07.2018
15:43:46
Нельзя разве проитерироваться по детям и прокинуть дальше?

Cenator
25.07.2018
15:44:39

Duego
25.07.2018
15:44:46
Почему?


from
25.07.2018
15:46:20
блин HOC'и это всё-таки очень неудобно!
Возьмём упрощенный пример.
Допустим у меня есть hoc withUser, который прокидывает два пропса: объект user и функцию updateUser
Я пишу компонент:
function UserButton({ user, ...htmlProps }) {
return <button style={{ color: getFavColor(user) }} {...htmlProps}>hello, world</button>
}
export default withUser(UserButton);
Кто-нибудь уже видит проблему? Проблема в том, что в ...htmlProps по-любому попадёт ненужный проп updateUser, которому на хтмл-элементе делать нечего.
К сожалению, рекомпоузом эту проблему никак не решить. Вот такая попытка приведёт нас к новой проблеме:
export default comspose(
withUser,
mapProps(props => ({ user: props.user }),
)(UserButton);
Проблема в том, что теперь в ...htmlProps не попадут вообще никакие дополнительно прокинутые пропсы
Решение я вижу только одно, уродливое — написать некую omit функцию, которая будет знать про все возможные хтмл-пропсы. Но это отвратительно
Единственное другое решение это знать о том, какие именно пропсы даёт withUser. Но в этом блин и проблема — мы этого не знаем и с ХОКами эту информацию легко не получить

Google

Cenator
25.07.2018
15:46:35
Почему?
нарушается декларативная модель


Artem
25.07.2018
15:48:34
блин HOC'и это всё-таки очень неудобно!
Возьмём упрощенный пример.
Допустим у меня есть hoc withUser, который прокидывает два пропса: объект user и функцию updateUser
Я пишу компонент:
function UserButton({ user, ...htmlProps }) {
return <button style={{ color: getFavColor(user) }} {...htmlProps}>hello, world</button>
}
export default withUser(UserButton);
Кто-нибудь уже видит проблему? Проблема в том, что в ...htmlProps по-любому попадёт ненужный проп updateUser, которому на хтмл-элементе делать нечего.
К сожалению, рекомпоузом эту проблему никак не решить. Вот такая попытка приведёт нас к новой проблеме:
export default comspose(
withUser,
mapProps(props => ({ user: props.user }),
)(UserButton);
Проблема в том, что теперь в ...htmlProps не попадут вообще никакие дополнительно прокинутые пропсы
Решение я вижу только одно, уродливое — написать некую omit функцию, которая будет знать про все возможные хтмл-пропсы. Но это отвратительно
Единственное другое решение это знать о том, какие именно пропсы даёт withUser. Но в этом блин и проблема — мы этого не знаем и с ХОКами эту информацию легко не получить
не фильтруй пропсы, просто строй расширение и все вроде ок


from
25.07.2018
15:49:03

Artem
25.07.2018
15:49:18

from
25.07.2018
15:49:47
откуда лишнее берется?)
дык по условию
хок может много чего прокидывать. В данном примере он прокидывает неиспользуемый проп updateUser

Artem
25.07.2018
15:50:48

from
25.07.2018
15:51:11

Artem
25.07.2018
15:51:16
ты ее прокидываешь компоненты сверху и не используешь, тут архитектурное вроде как

Вячеслав
25.07.2018
15:51:40

from
25.07.2018
15:52:22

Artem
25.07.2018
15:52:27

Dmitry
25.07.2018
15:52:37
Подскажите какой щас самый модный способ писать стили для реакта?

from
25.07.2018
15:52:50

Artem
25.07.2018
15:52:57

Вячеслав
25.07.2018
15:53:08

Artem
25.07.2018
15:53:18
в цепочки усилитей нужно кидать данные которые нужны конечному компоненту

Dmitry
25.07.2018
15:53:22

Artem
25.07.2018
15:53:59
если будешь фильтровать или вмешивать в работу хока, по итогам будет много боли

from
25.07.2018
15:54:23

Artem
25.07.2018
15:54:50
compose(
withGetData,
withStyle,
withAnimation
)(component);

Google

Вячеслав
25.07.2018
15:54:54


from
25.07.2018
15:54:55
блин HOC'и это всё-таки очень неудобно!
Возьмём упрощенный пример.
Допустим у меня есть hoc withUser, который прокидывает два пропса: объект user и функцию updateUser
Я пишу компонент:
function UserButton({ user, ...htmlProps }) {
return <button style={{ color: getFavColor(user) }} {...htmlProps}>hello, world</button>
}
export default withUser(UserButton);
Кто-нибудь уже видит проблему? Проблема в том, что в ...htmlProps по-любому попадёт ненужный проп updateUser, которому на хтмл-элементе делать нечего.
К сожалению, рекомпоузом эту проблему никак не решить. Вот такая попытка приведёт нас к новой проблеме:
export default comspose(
withUser,
mapProps(props => ({ user: props.user }),
)(UserButton);
Проблема в том, что теперь в ...htmlProps не попадут вообще никакие дополнительно прокинутые пропсы
Решение я вижу только одно, уродливое — написать некую omit функцию, которая будет знать про все возможные хтмл-пропсы. Но это отвратительно
Единственное другое решение это знать о том, какие именно пропсы даёт withUser. Но в этом блин и проблема — мы этого не знаем и с ХОКами эту информацию легко не получить
вот с рендер-пропсами такой проблемы нет


Artem
25.07.2018
15:55:25

from
25.07.2018
15:55:37

Вячеслав
25.07.2018
15:55:58

Artem
25.07.2018
15:56:07
я так с контекстом работаю, есть хок Provider, а внутри рендер проп)

Admin
ERROR: S client not available

from
25.07.2018
15:56:16
но поговаривают что это круто, вон целый рекомпоуз написали
который не считая этой проблемы действительно удобный

Artem
25.07.2018
15:56:47

Вячеслав
25.07.2018
15:56:59
Хок это просто композиция в разрезе элементов реакта

from
25.07.2018
15:57:33
Не говорю уж про коллизию названий, это отдельная проблема из той же оперы

Artem
25.07.2018
15:58:06

Дмитрий
25.07.2018
15:58:20

from
25.07.2018
15:58:40

Google

Artem
25.07.2018
15:59:10

Вячеслав
25.07.2018
16:00:26


Artyom
25.07.2018
16:00:36
блин HOC'и это всё-таки очень неудобно!
Возьмём упрощенный пример.
Допустим у меня есть hoc withUser, который прокидывает два пропса: объект user и функцию updateUser
Я пишу компонент:
function UserButton({ user, ...htmlProps }) {
return <button style={{ color: getFavColor(user) }} {...htmlProps}>hello, world</button>
}
export default withUser(UserButton);
Кто-нибудь уже видит проблему? Проблема в том, что в ...htmlProps по-любому попадёт ненужный проп updateUser, которому на хтмл-элементе делать нечего.
К сожалению, рекомпоузом эту проблему никак не решить. Вот такая попытка приведёт нас к новой проблеме:
export default comspose(
withUser,
mapProps(props => ({ user: props.user }),
)(UserButton);
Проблема в том, что теперь в ...htmlProps не попадут вообще никакие дополнительно прокинутые пропсы
Решение я вижу только одно, уродливое — написать некую omit функцию, которая будет знать про все возможные хтмл-пропсы. Но это отвратительно
Единственное другое решение это знать о том, какие именно пропсы даёт withUser. Но в этом блин и проблема — мы этого не знаем и с ХОКами эту информацию легко не получить
Не надо прокидывать в компонент то, что не надо прокидывать в компонент


Дмитрий
25.07.2018
16:00:55


Artyom
25.07.2018
16:01:43
блин HOC'и это всё-таки очень неудобно!
Возьмём упрощенный пример.
Допустим у меня есть hoc withUser, который прокидывает два пропса: объект user и функцию updateUser
Я пишу компонент:
function UserButton({ user, ...htmlProps }) {
return <button style={{ color: getFavColor(user) }} {...htmlProps}>hello, world</button>
}
export default withUser(UserButton);
Кто-нибудь уже видит проблему? Проблема в том, что в ...htmlProps по-любому попадёт ненужный проп updateUser, которому на хтмл-элементе делать нечего.
К сожалению, рекомпоузом эту проблему никак не решить. Вот такая попытка приведёт нас к новой проблеме:
export default comspose(
withUser,
mapProps(props => ({ user: props.user }),
)(UserButton);
Проблема в том, что теперь в ...htmlProps не попадут вообще никакие дополнительно прокинутые пропсы
Решение я вижу только одно, уродливое — написать некую omit функцию, которая будет знать про все возможные хтмл-пропсы. Но это отвратительно
Единственное другое решение это знать о том, какие именно пропсы даёт withUser. Но в этом блин и проблема — мы этого не знаем и с ХОКами эту информацию легко не получить
Вот тебе omit
```mapProps(({ updateUser, ...rest }) => rest```


Dmitry
25.07.2018
16:02:21
http://justinfagnani.com/2015/12/21/real-mixins-with-javascript-classes/

Вячеслав
25.07.2018
16:02:58

Sergey
25.07.2018
16:03:31

Дмитрий
25.07.2018
16:03:49

Artem
25.07.2018
16:04:01

Дмитрий
25.07.2018
16:04:07
({a, b, c})
А вот композиция
Найди три отличия

from
25.07.2018
16:04:27

Artem
25.07.2018
16:04:41
смотри на примере выше) Какое наследование, если в конце я обезьяну делаю)

Artyom
25.07.2018
16:05:06

Artem
25.07.2018
16:05:29
в наследование я по итогам должен получить какую нить птицу, но я могу по итогам обезьяну получить без крылье и когтей

Дмитрий
25.07.2018
16:06:00
?

from
25.07.2018
16:06:01
не понял
попробуй компонент использовать так
<UserButton disabled={someBool} />
если у тебя там на пути mapProps, то disabled ты потеряешь

Artyom
25.07.2018
16:06:15
Наследование, это, грубо говоря, перетирание целевого объекта конструктором. ХОКи тоже самое делают