Почему в react не работает хук useState?
В react пытаюсь сделать просто массив с элементами цифрами от 1 до 10([1,2...10]) используя хук useState:
const [pagesArray, setPagesArray] = useState([]);
useMemo(() => {
setPagesArray([])
for (let i = 0; i < totalPages; i++) {
setPagesArray([...pagesArray, i + 1]);
}
console.log(pagesArray)
}, [totalPages]);
Здесь totalPages - это число 10(оно, если важно, тоже изменяется с помощью useState). Но pagesArray не меняется, почему?
Ответы (1 шт):
Автор решения: ksa
→ Ссылка
В react пытаюсь сделать просто массив с элементами цифрами от 1 до 10([1,2...10]) используя хук useState:
Вот так можно такое провернуть...
const App = _ => {
const [p, setP] = React.useState(0)
const [a, setA] = React.useState([])
React.useEffect(_ => {
const arr = Array.from({length: +p}, (_, i) => i + 1)
setA(arr)
}, [p])
return <main>
<input type='number' onChange={e => setP(+e.target.value)} value={p} />
<section>
{a.map(v => <div key={v}>{v}</div>)}
</section>
</main>
}
const domContainer = document.querySelector('#like_button_container');
const root = ReactDOM.createRoot(domContainer);
root.render(<App />);
section {
display: flex;
gap: 10px;
}
div {
padding: 5px;
border: 1px solid;
}
<script src="https://unpkg.com/react@18/umd/react.development.js" crossorigin></script>
<script src="https://unpkg.com/react-dom@18/umd/react-dom.development.js" crossorigin></script>
<div id="like_button_container"></div>