Size: a a a

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

2020 September 27

DG

Dmitry Guzeev in React — русскоговорящее сообщество
ステパンヤノ 。
а понял, спасибо. я думал реакт как нить сохраняет ретурн значение и при ререндере лишь вызывает это. но получается ре рендер это всегда вызов этой фунцкий. тогда да, трудно понять почему эффект работает один раз, если дать пустой массив как второй аргумент. то есть в начале все работает, даже эффелт, а при ре рендере когда вызывается эта функция снова, то тогда реакт уже знает про эффект и не выполняет ?

насчет булевых )) при
child {isOnline} если isOnline false а не 'false' , то в шаблоне ничего не будет видно )))
в шаблоне уже можно с помощью тернарного оператора рендерить нужное содержимое))
источник

DG

Dmitry Guzeev in React — русскоговорящее сообщество
Dmitry Guzeev
в шаблоне уже можно с помощью тернарного оператора рендерить нужное содержимое))
а если это просто пример, то мог бы и без префикса is обойтись
источник

V

Vlad in React — русскоговорящее сообщество
ステパンヤノ 。
а понял, спасибо. я думал реакт как нить сохраняет ретурн значение и при ререндере лишь вызывает это. но получается ре рендер это всегда вызов этой фунцкий. тогда да, трудно понять почему эффект работает один раз, если дать пустой массив как второй аргумент. то есть в начале все работает, даже эффелт, а при ре рендере когда вызывается эта функция снова, то тогда реакт уже знает про эффект и не выполняет ?

насчет булевых )) при
child {isOnline} если isOnline false а не 'false' , то в шаблоне ничего не будет видно )))
JSON.stringify(bool) в шаблоне всегда можно делать
источник

DG

Dmitry Guzeev in React — русскоговорящее сообщество
ステパンヤノ 。
а понял, спасибо. я думал реакт как нить сохраняет ретурн значение и при ререндере лишь вызывает это. но получается ре рендер это всегда вызов этой фунцкий. тогда да, трудно понять почему эффект работает один раз, если дать пустой массив как второй аргумент. то есть в начале все работает, даже эффелт, а при ре рендере когда вызывается эта функция снова, то тогда реакт уже знает про эффект и не выполняет ?

насчет булевых )) при
child {isOnline} если isOnline false а не 'false' , то в шаблоне ничего не будет видно )))
почитай об устройстве хуков и что отдельные хуки делают
источник

ス。

ステパンヤノ 。... in React — русскоговорящее сообщество
Dmitry Guzeev
почитай об устройстве хуков и что отдельные хуки делают
а если по старому, класс компонент, тогда только рендер вызывается , да ?
источник

DG

Dmitry Guzeev in React — русскоговорящее сообщество
render() вызывается
источник

ス。

ステパンヤノ 。... in React — русскоговорящее сообщество
все понял. принцип работы с классами простой, с хуками сложно. пойду читать
источник

Q

Qop in React — русскоговорящее сообщество
Dmitry Guzeev
сразу задавай вопрос
Я хочу доставать нужные мне данные сразу, при событии onChange  на элементе Select(выделил). в value лежит символьное обозначение валюты(USD, BTN..) но мне нужно еще и price доставать. Можно конечно проходится циклом каждый раз, но это не вообще не оптимальный вариант будет.
В onChange могу получить только  value, думал сначала объект туда пихать, но реакт ругается
источник

DG

Dmitry Guzeev in React — русскоговорящее сообщество
можешь сделать хэш-таблицу symbol -> { id, price }, и там за O(1) смотреть price
источник

DG

Dmitry Guzeev in React — русскоговорящее сообщество
+ можно энкапсулировать данное поведение внутрь своего кастомного компонента CryptoSelect
источник

DG

Dmitry Guzeev in React — русскоговорящее сообщество
и переопределить onChange чтобы он отдавал { id, price, symbol } вместо symbol
источник

Q

Qop in React — русскоговорящее сообщество
то есть объект с ключами USD и доставать как data[value]
источник

V

Vlad in React — русскоговорящее сообщество
Qop
Я хочу доставать нужные мне данные сразу, при событии onChange  на элементе Select(выделил). в value лежит символьное обозначение валюты(USD, BTN..) но мне нужно еще и price доставать. Можно конечно проходится циклом каждый раз, но это не вообще не оптимальный вариант будет.
В onChange могу получить только  value, думал сначала объект туда пихать, но реакт ругается
источник

Q

Qop in React — русскоговорящее сообщество
Dmitry Guzeev
+ можно энкапсулировать данное поведение внутрь своего кастомного компонента CryptoSelect
спасибо за идею, подумаю над этим как реализовать
источник

MK

Maxim Koylo in React — русскоговорящее сообщество
ステパンヤノ 。
а понял, спасибо. я думал реакт как нить сохраняет ретурн значение и при ререндере лишь вызывает это. но получается ре рендер это всегда вызов этой фунцкий. тогда да, трудно понять почему эффект работает один раз, если дать пустой массив как второй аргумент. то есть в начале все работает, даже эффелт, а при ре рендере когда вызывается эта функция снова, то тогда реакт уже знает про эффект и не выполняет ?

насчет булевых )) при
child {isOnline} если isOnline false а не 'false' , то в шаблоне ничего не будет видно )))
реакт выполняет каждый раз юзэфект и уже тот смторит что было в масиве завиимостей на предыдущем рендере и на сравнивает то что на этом ренедере, если то то не совпало то вызывает эфект
источник

НБ

Николай Блинов... in React — русскоговорящее сообщество
Саша Домоседов
А почему запрос не в эффекте ?
Потому что это тестовый демонстрационный пример созданный для более наглядного описания проблемы затирания сессии на сервере.
источник

m

m^^combat in React — русскоговорящее сообщество
Почему react-test-renderer при
/**
* @jest-environment node
*/

вызывает useEffect хук при рендеринге?
источник

V

Vetro in React — русскоговорящее сообщество
m^^combat
Почему react-test-renderer при
/**
* @jest-environment node
*/

вызывает useEffect хук при рендеринге?
Ну, act из react test renderer флашит эффекты

Если это не нужно, используй act из react-dom/test-utils
источник

BA

Bogdan Aleksandrovic... in React — русскоговорящее сообщество
ステパンヤノ 。
скажите плиз, вот есть компонент чайлд. он внутри себя держит стейт и обновляет его после 2 секунд. при рендере делается лог,   и после 2 секунд снова делается лог, скажите зачем ? я думал что реакт только будет ререндер делать, а видимо заново вызывается функция чайлда.
Произошёл апдейт и он все вызовы сделает ещё раз
источник

m

m^^combat in React — русскоговорящее сообщество
Vetro
Ну, act из react test renderer флашит эффекты

Если это не нужно, используй act из react-dom/test-utils
Я вызывал create но спасибо щас гляну
источник