const {keyword} = query
const {page, pageSize} = table.pagination
useEffect(() => {
setTable(prevState => ({
...prevState,
pagination: {...prevState.pagination, page: 1}
}))
}, [keyword])
useEffect(() => {
fetchList()
}, [page, pageSize, keyword])
表格改变查询条件时,需要将表格分页重置为第一页。但是fetchList会执行两次。
需要怎么做,才能让fetchList只执行一次
正确做法是不应该把重置为第一页这个事情写成一个effect…
如果你还有别的东西要重置(比如重置排序参数、重置分页大小),每个重置都单独写一个effect,那你可能不止重复渲染一次,而是重复渲染n次;
setState的时候自己手动去干这个事情而不是用effect去干;嫌麻烦可以把这个手动干的过程给封起来