Size: a a a

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

2020 October 02

V

Vlad in React — русскоговорящее сообщество
Как можно проще всего проверять react-datepicker и если он не заполнен focus на нем с обводкой?
источник

AS

Andrii Stepanov in React — русскоговорящее сообщество
Vladimir
я этот реф получаю из хука, который на этом скрине и прокидываю на див элемент который был на первом скрине
То есть ты ловишь реф в другом компоненте?
источник

V

Vladimir in React — русскоговорящее сообщество
да, в хуке
источник

AS

Andrii Stepanov in React — русскоговорящее сообщество
optionsRef тебе в пропсы приходит?
источник

V

Vladimir in React — русскоговорящее сообщество
Andrii Stepanov
optionsRef тебе в пропсы приходит?
optionsRef я создаю в хуке, получаю в компоненте который использует хук, навешиваю на див и в хуке useEffect хочу работать с этой ссылкой
источник

AS

Andrii Stepanov in React — русскоговорящее сообщество
источник

AS

Andrii Stepanov in React — русскоговорящее сообщество
Ну или я шото не правильно понял, кек
источник

ii

ilia ivanik in React — русскоговорящее сообщество
const setProfile = () => { props.setProfileAPI(url_id) }
const unsetProfile = () => { props.cancelProfileAPI(); props.resetPage() }

useEffect(() => {
 setProfile()
 return () => unsetProfile()
}, [])


useEffect(() => {
 if (currentID !== null && currentID !== url_id) {
   unsetProfile()
   setProfile()
 }
}, [currentID, url_id])

———————————-

ругается: React Hook useEffect has missing dependencies: 'setProfile' and 'unsetProfile'.

———————————-

кто может подсказать, как правильно пихать коллбэки, приходящие в пропсах в useEffect? Все, что я нашел ссылается на вот это место: https://ru.reactjs.org/docs/hooks-faq.html, где показано как делать через useCallback ... но с useCallback та же проблема (только теперь useCallback требует, чтобы ему в зависимости передали props)
источник

V

Vladimir in React — русскоговорящее сообщество
блин, с тими хоками/хуками, понапридумывали одинаковых названий, я там опечатался, это все делаю не в хоке, а в хуке, поправил уже
источник

AS

Andrii Stepanov in React — русскоговорящее сообщество
Vladimir
блин, с тими хоками/хуками, понапридумывали одинаковых названий, я там опечатался, это все делаю не в хоке, а в хуке, поправил уже
Я думаю тебе енивей стоит форвард реф попробовать. Ибо реф обрабатываеться несколько иначе, чем обычные пропсы
источник

AS

Andrii Stepanov in React — русскоговорящее сообщество
ilia ivanik
const setProfile = () => { props.setProfileAPI(url_id) }
const unsetProfile = () => { props.cancelProfileAPI(); props.resetPage() }

useEffect(() => {
 setProfile()
 return () => unsetProfile()
}, [])


useEffect(() => {
 if (currentID !== null && currentID !== url_id) {
   unsetProfile()
   setProfile()
 }
}, [currentID, url_id])

———————————-

ругается: React Hook useEffect has missing dependencies: 'setProfile' and 'unsetProfile'.

———————————-

кто может подсказать, как правильно пихать коллбэки, приходящие в пропсах в useEffect? Все, что я нашел ссылается на вот это место: https://ru.reactjs.org/docs/hooks-faq.html, где показано как делать через useCallback ... но с useCallback та же проблема (только теперь useCallback требует, чтобы ему в зависимости передали props)
useEffect(() => {
 setProfile()
 return () => unsetProfile()
}, [setProfile, unsetProfile])

так?
источник

ii

ilia ivanik in React — русскоговорящее сообщество
Andrii Stepanov
useEffect(() => {
 setProfile()
 return () => unsetProfile()
}, [setProfile, unsetProfile])

так?
это он (eslint) хочет, чтобы это было так)) но это заворачивает все в бесконечный callback
источник

V

Vladimir in React — русскоговорящее сообщество
Andrii Stepanov
Я думаю тебе енивей стоит форвард реф попробовать. Ибо реф обрабатываеться несколько иначе, чем обычные пропсы
да не, форвард реф все таки для других задач, сейчас стал консолить просто ссылку и в ней все таки есть данные, но интересно то что если законсолить просто optionsRef.current, то в консоле видно див элемент с дочерними элементами, если же законсолить optionsRef.current.children , то элементов нет
источник

ii

ilia ivanik in React — русскоговорящее сообщество
Andrii Stepanov
useEffect(() => {
 setProfile()
 return () => unsetProfile()
}, [setProfile, unsetProfile])

так?
чтобы не было бесконечного коллбэка я и пробовал useCallback, но все равно он не дает от этого уйти
источник

AS

Andrii Stepanov in React — русскоговорящее сообщество
Vladimir
да не, форвард реф все таки для других задач, сейчас стал консолить просто ссылку и в ней все таки есть данные, но интересно то что если законсолить просто optionsRef.current, то в консоле видно див элемент с дочерними элементами, если же законсолить optionsRef.current.children , то элементов нет
У тебя тип постоянно setProfile/unsetProfile тригеряться?
источник

V

Vladimir in React — русскоговорящее сообщество
Andrii Stepanov
У тебя тип постоянно setProfile/unsetProfile тригеряться?
не туда)
источник

AS

Andrii Stepanov in React — русскоговорящее сообщество
упс
источник

ii

ilia ivanik in React — русскоговорящее сообщество
Andrii Stepanov
useEffect(() => {
 setProfile()
 return () => unsetProfile()
}, [setProfile, unsetProfile])

так?
объявив setProfile через useCallback - я могу написать так, как ты показываешь, но тогда он будет ругаться, что useCallback хочет получить в deps [props] - и как только он его получит - снова будет бесконечный callback
источник

ii

ilia ivanik in React — русскоговорящее сообщество
Andrii Stepanov
У тебя тип постоянно setProfile/unsetProfile тригеряться?
ну да, если передать зависимости , [setProfile, unsetProfile] - то будут бесконечно тригериться
источник

ii

ilia ivanik in React — русскоговорящее сообщество
по сути мне бы сделать просто, чтобы вот такое работало (самое примитивное):

const Component = (props) => {
 useEffect(() => {
   props.callback()
 }, [])
}
источник