У меня проблемы со страницей сброса = 1. В handleSearchClick
у меня есть setPage(1)
, но он запаздывает на один клик, поэтому после второго клика страница будет сброшена до 1
Это мой текущийкод
const [page, setPage] = React.useState(1);
//Other states as well
/**
* Handles event on search click
*/
const handleSearchClick = async () => {
setItems([]);
const database = handleBaseId();
setPage(1);
const items = await fetchSearchPayload(page, value, option, database);
setIsLoading(false);
setItems(items);
};
Я также пытался сбросить страницу в самой кнопке, но получал react limits the number of renders to prevents an infinite loop
сообщение об ошибке
Это то, что я пытался сделать
<SearchBar
onClickButton={handleSearchClick}
onValueChange={handleChange}
value={value}
pageNum={page}
onEnter={handleSearchOnEnter}>
{setPage(1)}
</SearchBar>
Я также попытался использовать useEffect
и добавил состояние count
, которое увеличивается каждый раз, когда нажимается searchBar
, но у меня были проблемы с самим подсчетом, являющимся шагом позади.
const [count, setCount] = React.useState(0);
React.useEffect(() => {
setPage(1);
}, [count]);
/**
* Handles event on search click
*/
const handleSearchClick = async () => {
setCount(count+1);
setItems([]);
const database = handleBaseId();
setPage(1);
const items = await fetchSearchPayload(page, value, option, database);
setIsLoading(false);
setItems(items);
};
Любые предложения о том, как сбросить page
без каких-либо задержек, приветствуются!