I have the following piece of code
const IssuesItems: React.FC<IProps> = function ({ issuesProp }) {
const [issues] = useState<any>([...issuesProp]);
const [paginatedIssues, setPaginatedIssues] = useState<any>([]);
const [currentPage, setCurrentPage] = useState<any>(1);
const [itemsPerPage, setItemsPerPage] = useState<any>(13);
const [numberOfPages, setNumberOfPages] = useState<any>(null);
useEffect(() => {
// set the number of pages
const numberOfPages = Math.ceil(issues.length / itemsPerPage);
console.log(numberOfPages);
setNumberOfPages(numberOfPages);
}, []);
useEffect(() => {
console.log(numberOfPages);
const newArr = splitArray(issues, numberOfPages);
console.log('new arr');
console.log(newArr);
}, [numberOfPages]);
Problem is that, the second useEffect, is triggered on load, when numberOfPages is null, shouldn't it be triggered only after setNumberOfPages is triggered for the first time?
I can fix it doing this
useEffect(() => {
if (numberOfPages != null) {
const newArr = splitArray(issues, numberOfPages);
console.log('new arr');
console.log(newArr);
}
}, [numberOfPages]);
But should it only be fired after the numberOfPages state is modified by a setNumberOfPages call?