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 ответов

20 просмотров

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

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

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

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

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

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

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

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

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

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

Может кто подсказать какие требования к изображениям для обучения Yolo v8? Как то разрешение, размер выделяемого обьекта в пикселях, оптимальное кол-во изображений. А то я пыт...
Владислав😎
16
Есть какой нибудь ocr который хорошо читает мелкий текст?
TrL Yash?
3
Появилась необходимость попробовать сделать мониторинг картинки в плане смещения, т.е. есть эталонное изображение и сравнивать его с последующими на предмет сдвига по осям. Ra...
Denis
1
Доброго времени! Вопрос хочу на дрон стерео зрение поставить, если 2 камеры будут расположены на растоянии 60 см это много? И как прикинуть максимальную дальность?
Никита Гуров
5
Done all. My dear friends 😊, Would you please upvote my new works and upvote if you liked it? Also any feedback would be very appreciated. https://www.kaggle.com/code/matin...
Matin Mahmoodi
2
Может кто-нибудь сталкивался. Есть оригинальное изображение и его уменьшенные версии. Условно 1280х1280 и 640х640. Через какие инструменты и как было совершено уменьшение - не...
Georgy Makarov
1
Как распидорасить виртуальное окружение conda с помощью вумного PyCharm? Открываешь папку как проект. Указываешь интерпретатор из этого окружения, нажимаешь Ок.
Maxim 👀 Osminin #Slowpoke3D
2
Я как-то кроме OpenCV для задач классического CV ничего раньше не рассматривал (кроме Kornia). А кто-то имел опыт работы с BoofCV, FastCV, SimpleCV, GluonCV и подобными? Они н...
Georgy Makarov
2
Только сейчас дошли руки до Orange pi 5. Это нормально что на нем YOLOv5s выдает 1 кадр раз в 2-3 секунды на CPU? Это без оптимизаций и прочих настроек, просто голый запуск че...
Denis
17
Доброе утро. Подскажите, если если 4 корутины, внутри которых VideoCapture, то будут ли они работать асинхронно? Т.к. нагуглил, что Videocapture в моменте может быть открыт то...
Alexander👨‍💻
19
Карта сайта