#javascript #reactjs
Вопрос:
У меня есть страница продукта, отсортированная по названию. Сортировка работает, все нормально, но когда происходит разбиение на страницы, новые элементы загружаются без сортировки. Как это исправить?
const Grid = ({filter, countOnRow, totalCount, products}) =gt; { const [fetching, setFetching] = useState(true) const [total, setTotal] = useState(totalCount) const [startPage, setStartPage] = useState(0) const [produs, setProdus] = useState([]) const [okay, setOkay] = useState(false) const [selectedSort, setSelectedSort] = useState('') useEffect(()=gt;{ if(fetching){ setProdus([...produs, ...products.slice(startPage,total)]) setStartPage(total) setTotal(total total) setFetching(false ) } }, [fetching]) useEffect(()=gt;{ document.addEventListener('scroll', scrollHadnler); return function(){ document.removeEventListener('scroll', scrollHadnler) }; }, []) const scrollHadnler=(e)=gt;{ if(e.target.documentElement.scrollHeight-(e.target.documentElement.scrollTop window.innerHeight)lt;100){ setFetching(true) } } const sortByName = (sort) =gt; { setSelectedSort(sort) setProdus([...produs].sort((a,b) =gt; a[sort].localeCompare(b[sort]))) setOkay(!okay) }
Как я могу реализовать фильтрацию, чтобы она сохранялась после разбиения на страницы.
Комментарии:
1. Где на самом деле используется имя сортировки?
2. Выполните этот шаг, создайте a
useEffect()
, и его зависимостью будет массив данных, и в соответствии с этим эффектом обработайте данные, отсортируйте и используйте эти данные для отображения в таблице. К этому времени каждый раз, когда извлекаются новые данные, эффект будет сортировать данные и отображать их в правильном формате