169 похожих чатов

Добрый день, изучаю хуки, подскажите, пожалуйста, вот кусок кода const AnimatedPath

= styled.path`
stroke-dasharray: 20;
fill: none;
stroke: #000000;
transition: stroke-dasharray 1000ms ease-in-out;
`
const AnimatePath = styled.path`
stroke-dasharray: 0;
`;


const SvgText = () => {
const { scroll } = useLocomotiveScroll();

const svg = useRef(null);

useEffect(() => {
// svg > AnimatedPath.animate ???
}, [])

return (
<SvgTextWrap>
<svg ref={svg}>
<AnimatedPath d="M33.085......
я хочу чтобы useEffect проиграл анимацию на svg когда компонент загрузится, как мне правильно это сделать используя реф? Как обратиться к дочернему компоненту? Я пытаюсь думать в рамках обычного JS, что я бы подцепил элемент через querySelector и ему класс навесил/стиль поменял, но это наверное не очень правильно.

5 ответов

17 просмотров

когда стучишься до компонента через querySelector в React - жрешь много ресурсов. Всегда при вызове useEffect твой компонент отрендерен и находится в дом дереве, твой компонент, к которому ты пытаешься достучаться в useRef находится в svg.current

Tim- Автор вопроса

вот поэтому и не хочу использовать способы обычного ЖС

будешь стучаться в useRef вне useEffect - иногда будешь ловить ошибку, что компонента в useRef нет, потому что вызов произошел раньше рендера кода

нет, там только 1 элемент

Tim- Автор вопроса

useRef положить в useEffect?

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта