В Next.js , как прокрутить до верхней части окна после установки значения поиска в строке поиска?

#reactjs #search #input #scroll #next.js

#reactjs #Поиск #ввод #прокрутка #next.js

Вопрос:

Представьте, что у меня где-то есть кнопка. При нажатии текст на нем теперь переходит в мою панель поиска. Как мне заставить окно прокручиваться до строки поиска тоже после того, как значение установлено в Input элементе, показанном ниже?

           <Flex
            flexDirection="column"
            justifyContent="center"
            alignItems="center"
            maxWidth="90%"
            mt={4}
          >
            {!filteredBlogPosts.length amp;amp; 'No posts found.'}
            {filteredBlogPosts.map((frontMatter) => (
              <>
              <BlogPost
                key={frontMatter.title   frontMatter.lastPublishedOn}
                 handleSearch={(anyKey) => setSearchValue(anyKey)}
                 // Insert your code here, how to scroll after setting the key to search? 
                {...frontMatter}
              />
              </>
            ))}
          </Flex>
 

И вот <Input> поле

             <Input
              aria-label="Search"
              borderColor="blue.500"
              onChange={(e) => setSearchValue(e.target.value)}
              placeholder="Search"
              value={searchValue}
              //or should I do scroll here? How?
              autoFocus
              onFocus={e => e.currentTarget.select()}
            />

 

Это легко сделать? Пожалуйста, представьте примеры кода, если это возможно.

Спасибо.

Ответ №1:

Если кто-нибудь столкнется с этой проблемой в будущем, я решил ее с помощью этой простой функции.

     const scrollSearch = myKey => {
    window.scrollTo(0, 0);
    frontMatter.handleSearch(myKey)
  };
 

И передал scrollSearch функцию в кнопке onClick .