Function App() { const [posts, setPosts] =

useState([
{id: 1, title: 'Aavascript', body: 'wescription'},
{id: 2, title: 'Wavascript 1', body: 'rescription 1'},
{id: 3, title: 'Lavascript 2', body: 'hescription 2'},
])

const [selectedSort, setSelectedSort] = useState('')
const [searchQuery, setSearchQuery] = useState('')


function getSortedPosts() {
console.log('Sort function done')

if (selectedSort) {
return [...posts].sort((a,b) => a[selectedSort].localeCompare(b[selectedSort]))
}
return posts
}

const sortedPosts = getSortedPosts();

const changeSortFilter = (sort) => {
setSelectedSort(sort)
console.log(sort)
}

const onSearch = (e) => {
setSearchQuery(e.target.value)

}

return (
<div className="App">
<MyInput
value={searchQuery}
onChange={onSearch}
placeholder="Search by"
/>
<MySelect
value={selectedSort}
onChange={changeSortFilter}
defaultValue="Sort by"
options={[
{value: 'title', name: 'By name'},
{value: 'body', name: 'By description'}
]}
/>
</div>
);
}

export default App;

Народ, есть такой код, идея такова что есть два useState, один отвечает за сортировку по списку, второй за поиск. Ф-ция getSortedPosts возвращает отсортированный масив и выводит в консоль сообщение если ф-ция сработала, но вопрос вот в чем: почему эта ф-ция срабатывает даже когда я пишу что-то в инпут она срабатывает тоже? Если по сути хук для изменения состояния поиска не участвует нигде?

6 ответов

11 просмотров

const sortedPosts = getSortedPosts(); а это что?

Sasha-Holovenko Автор вопроса
Aleksandr Krivenkov
const sortedPosts = getSortedPosts(); а это что?

это просто уже отсортированный масив, что бы передавать дальше в другие компоненты для рендеринга

Как не участвует? onSearch вызывает setSearchQuery

Sasha-Holovenko Автор вопроса
Юра Чеботаев
Как не участвует? onSearch вызывает setSearchQuery

Да, это верно. Но почему-то ф-ция getSortedPosts() вызывается когда я меняю его, хотя searchQuery нигде не замечен в функции

Sasha Holovenko
Да, это верно. Но почему-то ф-ция getSortedPosts()...

Компонент ререндерится каждый раз, когда любой хук изменяется

Похожие вопросы

Обсуждают сегодня

Приветствую. Есть N видео объектов (фильмы). Часть полной длины просмотра а часть короткие ( обрезаны титры). Задача найти идентичные фильмы. Я не в курсе, есть ли аналог шаз...
Nikolay Chudinov
7
Кто знает как подружить Gstreamer с OpenCV? Вот такой пайплайн я шлю с гстримера но OpenCV + python у меня никак не получается его воспроизвести "gst-launch-1.0 nvarguscameras...
Artem
3
Как потом сделать чтобы питон видел нахождение скомпилированных файлов? Я через системные переменные пробовал указать расположение но не помогло
Artem
5
https://youtu.be/d8Jx6zO1yw0?si=AvWkrBe-RS3FAlWX Компилировал с CUDA по этому гайду, единственно моменты: 1) С VS 2022 работает, нужно только что бы была установлена среда C...
Denis
1
Какая ошибка выпадает ? Под cuda нужно поставить toolkit и cudnn
алексей панчук
3
Это везде так работает, или еще колдовать нужно?)
Квадрат Гипотенузы
6
Всем привет! Есть камеры для наблюдения с встроенной видеоаналитикой (детектор лиц, например). Как я понял, все вычисления и анализ происходят на самом железе камеры, и пр...
Артур 🌞 Сапрыкин
1
Всем привет. На руках есть видеопоток с камеры микроскопа, который показывает клетки. (Фото 1). Пытаюсь обвести их квадратами и пронумеровать на картинке. Пока получается...
Semyon
10
Хмм... А на чем вы деплоите YOLO модели? Есть у кого-то опыт с ONNX (RT)?
Georgy Makarov
3
Всём доброго времени суток, хотел бы узнать, очень понравилось направление ML и в частности к компьютерному зрению (диплом по распознаванию болячек на растениях) , хотел бы по...
Il'ya King
12
Карта сайта