Как реализовать отображение компонентов из массива?
Имеется массив из нескольких компонентов, выводимых на экран. Я сделал две функции, которые меняют индекс (+ и -), и функцию что возвращает элемент массива, согласно индексу. Однако при нажатии, компонент не выводится на экран, и пропадает первый компонент, выводившийся по дефолту. Меж тем, 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