@react_js

Страница 4476 из 5115
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 ?

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?

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
так это же уже deprecated
Ну componentDidUpdate тогда

Cenator
25.07.2018
15:40:37
Есть такая разметка <RadioGroup name="name"> <Radio /> <Radio /> </RadioGroup> как из RadioGroup прокинуть name в Radio?
<RadioGroup name="name"> {({ nameProp }) => ( <Radio name={nameProp} /> <Radio name={nameProp} /> )} </RadioGroup>

const RadioGroup = ({ name, children }) => children({ nameProp: name })

Victor
25.07.2018
15:41:26
Ну componentDidUpdate тогда
это будет заставлять компонент перерисовывать ДОМ, чего я не хочу

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

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

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

Duego
25.07.2018
15:43:06
<RadioGroup name="name"> {({ nameProp }) => ( <Radio name={nameProp} /> <Radio name={nameProp} /> )} </RadioGroup>
Ну тогда опять смысла нет в обертке, хотелось сократить кода

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
не фильтруй пропсы, просто строй расширение и все вроде ок
"строй расширение" это что значит? Если не фильтровать, то говорю же, в ...htmlProps попадает лишнее

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

from
25.07.2018
15:51:11
ну я про это и спросил, откуда это функция сверху упала?)
я ж ответил уже, HOC её прокидывает оттуда же, откуда user пришёл

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

Вячеслав
25.07.2018
15:51:40
дык по условию хок может много чего прокидывать. В данном примере он прокидывает неиспользуемый проп updateUser
Я наверное что-то не уловил, но ведь ты сам заюзал хок, с ненужными тебе данными

from
25.07.2018
15:52:22
Я наверное что-то не уловил, но ведь ты сам заюзал хок, с ненужными тебе данными
О том и речь. В этом проблема ХОКов, что так по-любому будет если только не писать хоки, которые строго по одному пропсу прокидывают. Но так никто не делает

Artem
25.07.2018
15:52:27
Я наверное что-то не уловил, но ведь ты сам заюзал хок, с ненужными тебе данными
да с хоками есть такое дело, если не архитектить усиление, в итоге получится каша)

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

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
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
compose( withGetData, withStyle, withAnimation )(component);
каждый хок работает с своей областью отвественности, проблем как бы и нет

вот с рендер-пропсами такой проблемы нет
а кто мешает юзать хок и рендер проп?)

from
25.07.2018
15:55:37
compose( withGetData, withStyle, withAnimation )(component);
точно такая же проблема, каждый из этих хоков может прокидывать что-то, что конкретному component не нужно

а кто мешает юзать хок и рендер проп?)
да никто, рассуждаю ж прост

Вячеслав
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
точно такая же проблема, каждый из этих хоков может прокидывать что-то, что конкретному component не нужно
я про это и говорю, надо разграничивать хоки и даныне которые они передают, фильтрую на самом входе и все ок

да никто, рассуждаю ж прост
да я тоже обсуждаю)

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

from
25.07.2018
15:57:33
я про это и говорю, надо разграничивать хоки и даныне которые они передают, фильтрую на самом входе и все ок
да где же "ок"-то в твоём примере если какой-нибудь withGetData передаёт ненужный проп, тебе нужно чётко знать о том, какой именно

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

Artem
25.07.2018
15:58:06
да где же "ок"-то в твоём примере если какой-нибудь withGetData передаёт ненужный проп, тебе нужно чётко знать о том, какой именно
погоди, как он передаст не нужные данные, в внитри хока решу что вниз спускать после ответа сервера, не понимаю)

Дмитрий
25.07.2018
15:58:20
Хок это просто композиция в разрезе элементов реакта
Хок — это откровенное наследование

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
это вообще как получается наследование?)
Хоки по очереди аффектят друг друга, точно так же как классы через extends

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
Хоки по очереди аффектят друг друга, точно так же как классы через extends
Эм так композиция это объединение функций, и они в любом случае будут афектить друг друга в какой-то последовательности

Sergey
25.07.2018
16:03:31


Дмитрий
25.07.2018
16:04:07
({a, b, c})

А вот композиция

Найди три отличия

from
25.07.2018
16:04:27
Вот тебе omit ```mapProps(({ updateUser, ...rest }) => rest```
а я уже сказал — с этим омитом проблема и делать его нельзя Мы просто напросто на этом месте прервём все дополнительные пропсы

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

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
Наследование, это, грубо говоря, перетирание целевого объекта конструктором. ХОКи тоже самое делают

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