У меня есть вот такой компонент
Что лучше использовать для начального значения useState, функции или useMemo.
Я знаю только два способа дать начальные значения useState. Я привел два примера. Но я не уверен, какой способ лучше. Каковы плюсы и минусы? Или есть третий вариант?
вариант 1
function App(yardage, arrList, indxList) {
const [flippingListIndx, setFlippingListIndx] = useState(() => {
const arrStart = Math.floor(indxList / yardage) * yardage;
if (indxList < arrList.length) {
return arrStart + yardage;
} else {
return arrStart - yardage;
}
});
const [flippingList, setFlippingList] = useState(() => {
const arrStart = Math.floor(indxList / yardage) * yardage;
if (indxList < arrList.length) {
return arrList.slice(arrStart, arrStart + yardage);
} else {
return arrList.slice(arrStart - yardage, arrStart);
}
});
return (
....
);
}
в принципе второй вариант это не начальное значение но можно и так сказать.
вариант 2
function App(yardage, arrList, indxList) {
const [flippingListIndx, setFlippingListIndx] = useState(0);
const [flippingList, setFlippingList] = useState([]);
useMemo(() => {
const arrStart = Math.floor(indxList / yardage) * yardage;
if (indxList < arrList.length) {
setFlippingList(
arrList.slice(
arrStart,
arrStart + yardage
)
);
setFlippingListIndx(arrStart + yardage);
} else {
setFlippingList(
arrList.slice(
arrStart - yardage,
arrStart
)
);
setFlippingListIndx(arrStart - yardage);
}
}, [arrList, yardage, indxList])
return (
....
);
}