Size: a a a

2020 February 26

B

Bogdan in React Kyiv
Serhey Shmyg
Питання не вірно поставлене, крейт реф створює обєкт, реф колбек це просто фукнція яка надає доступ до ДОМ. Якщо реф отримує не колбек а обєкт стоврений через криейт реф, то в нього пише лінк на ДОМ елемент.
Ок по-другому. Если использовать колбэк с хранением ссылки в инстансе компонента, то есть разница с createRef? Может реакт на разных этапах вызывает колбэк и пишет в обьект от createRef?
источник

SS

Serhey Shmyg in React Kyiv
Bogdan
Ок по-другому. Если использовать колбэк с хранением ссылки в инстансе компонента, то есть разница с createRef? Может реакт на разных этапах вызывает колбэк и пишет в обьект от createRef?
викликає один раз, коли дом готовий, і в тебе лінк на дом, не має сенсу викликати реф щоразу, тому що ДОМ це обєкт і в тебе є на нього лінк
источник

B

Bogdan in React Kyiv
Serhey Shmyg
викликає один раз, коли дом готовий, і в тебе лінк на дом, не має сенсу викликати реф щоразу, тому що ДОМ це обєкт і в тебе є на нього лінк
Ну грубо говоря с createRef у меня все работает, а с колбэком нет. Пока не могу опистаь точнее
источник

SS

Serhey Shmyg in React Kyiv
Bogdan
Ну грубо говоря с createRef у меня все работает, а с колбэком нет. Пока не могу опистаь точнее
Покажи код
источник

B

Bogdan in React Kyiv
Serhey Shmyg
Покажи код
источник

B

Bogdan in React Kyiv
В калссе С логируется элемент, а в классе А нет
источник

EM

Eugene M in React Kyiv
посмотри на ref.current когда используешь класс А
источник

EM

Eugene M in React Kyiv
там тоже будет null
источник

EM

Eugene M in React Kyiv
просто ты передаешь объект в который потом будет записан реф
источник

EM

Eugene M in React Kyiv
и в консоле тебе кажется что он есть раньше чем на самом деле
источник

B

Bogdan in React Kyiv
Eugene M
там тоже будет null
Ок, а почему там тогда null если дочерний див отрендерился раньше?
источник

EM

Eugene M in React Kyiv
рендерит оно от чайлда к паренту, поэтому ты так не получишь реф
источник

EM

Eugene M in React Kyiv
только в useEffect
источник

EM

Eugene M in React Kyiv
твой вопрос не верно поняли
источник

EM

Eugene M in React Kyiv
рендерится от чайла к паренту как я выше написал
источник

EM

Eugene M in React Kyiv
useEffect чайла сработает раньше парента
источник

EM

Eugene M in React Kyiv
function B(props) {
 console.log("ref", props.reference.current); //null
 useEffect(() => {
   console.log(props.reference.current); // div
 }, []);
 return props.children;
}
источник

B

Bogdan in React Kyiv
Eugene M
useEffect чайла сработает раньше парента
Ну. Значит когда парент рендерится уже должен быть реф на чайлда
источник

EM

Eugene M in React Kyiv
функции как тебе выше показали работают
источник

EM

Eugene M in React Kyiv
верхняя сработает раньше
источник