Как реализовать отображение компонентов из массива?

Имеется массив из нескольких компонентов, выводимых на экран. Я сделал две функции, которые меняют индекс (+ и -), и функцию что возвращает элемент массива, согласно индексу. Однако при нажатии, компонент не выводится на экран, и пропадает первый компонент, выводившийся по дефолту. Меж тем, console.log выводиться вот это - $$typeof: Symbol(react.element). Подскажите пожалуйста, в чём я ошибся?

const pages = [<Comp/>, <Comp2 />, <Comp3 />];

  let index = 0;

  const [page, setPage] = useState(pages[0]);

const rightHandler = () => {
    if (index >= pages.length - 1) return;
    index++;
    showPosition();
  };

  const leftHandler = () => {
    if (index <= 0) return;
    index--;
    showPosition();
  };

  function showPosition() {
    return pages[index];
  }


Ответы (1 шт):

Автор решения: SwaD

В представленном вами коде нет рендера компонента. Предположительно, вам надо не возвращать значение, а записывать его в стэйт.

function showPosition() {
    setPage(pages[index]);
}

Да и переменную index лучше в стейт положить, а изменение index отслеживать через useEffect и там уже менять page

→ Ссылка