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

59 просмотров

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

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

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

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

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

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

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

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

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

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

Hi! Could you please upvote my new notebook? thanks a lot. https://www.kaggle.com/code/melissamonfared/anime-character-generation-dsgan-gan
məru
4
upvote plz https://www.kaggle.com/code/bassetkerouche/swapping-face?scriptVersionId=207300096
benkerrouche Statoinary
1
-- Привет всем. -- Есть csv, проблема в том что он содержит очень много повторов по столбцам и по строкам. -- Решил перекинуть это в базу данных, чтобы было проще. Но я не ша...
Oleg Ivanov
1
Как считаете - вопрос на собесе: «Как быстрее всего запустить ec2 машину в aws (в чистом аккаунте) и показать вывод от любой команды с нее» не очень ли сложный для условного м...
Sergey
50
Господа, у меня вопрос. Что вообще такое этот ваш data science и data scientists? А то гуглю, а мне какую-то расплывчатую фигню говорят.
Inkosta
44
Hi could you please help me with my two new projects? https://www.kaggle.com/code/hesankazemnia/rice-image-classification-cnn-pytorch https://www.kaggle.com/code/hesankazemnia...
Hesan
6
Исходя из ваших комментариев, получается, что чтобы получить марты в CH из данных в PG, неправильно тянуть сырые данные в CH и там их обрабатывать, лепить справочники и джойни...
unhingedlunatic
42
hi, Can you upvote? https://www.kaggle.com/code/durjoychandrapaul/rag-q-a-system-by-langchain-huggingface-for-pdf?scriptVersionId=204704280
A
1
Could you upvote and comment please? https://www.kaggle.com/code/tatianapetrushkevich/beginner-images https://www.kaggle.com/code/tatianapetrushkevich/python-for-beginners1 ...
Tazziyana
7
Коллеги, приветствую! Появилась не совсем тривиальная задача реализовать в nginx редирект HTTPS —> HTTP. Да, именно так, а не наоборот. Мы разрабатываем embedded устройство,...
Никита
24
Карта сайта