Alexander3928
@Alexander3928

Почему в useEffect не показываются элементы из массива?

Есть массив данных. Каждому повесил ref, чтобы потом перебрать все элементы. Но в useEffect ничего не консолится при загрузки страницы. Элементы я получаю только когда страница будет готова и я сделаю какое нибудь изменение на странице, тогда консолится. Почему так и как фиксить? StrictMode убран.

Рабочий пример, с таким же подходом



63b00b70dc249728732804.png
const array = [
  {
    title: "Ref Element 1"
  },
  {
    title: "Ref Element 2"
  },
  {
    title: "Ref Element 3"
  }
];

const revealRefs = useRef([]);
revealRefs.current = [];

useEffect(() => {
  revealRefs.current.forEach((element) => {
    console.log(element);
  })
}, []);

const addToRefs = (element) => {
  if (element && !revealRefs.current.includes(element)) {
    revealRefs.current.push(element);
  }
}

<section className="container">
   {array.map((element) => (
     <div className="element" ref={addToRefs}>{element.title}</div>    
    ))}  
</section>
  • Вопрос задан
  • 105 просмотров
Пригласить эксперта
Ответы на вопрос 1
Natebash
@Natebash
React, Vue, Angular, Navite JS, Python / Node JS
StrictMode убран.

Вам стоит более тщательно почитать про стрикт мод)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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