React로 검색창 만들기
2479 단어 webdevreactjavascript
데이터 확보
이 예에서는 가져오기 기능을 사용하여 .json 파일에서 데이터를 가져올 것입니다. .json에서 가져온 데이터는 화면에 표시하는 데 사용할 수 있는 배열에 저장됩니다.
/* App.js */
import React, { useState, useEffect } from "react"
import Header from "./Header"
import SearchBar from "./SearchBar"
import DataContainer from "./DataContainer"
function App() {
const [data, setData] = useState([])
useEffect(() => {
fetch(url)
.then(resp => resp.json())
.then(dataArray => setData(dataArray))
},[])
return (
<>
<Header />
<SearchBar />
<DataContainer data={data}/>
</>
)
}
export default App
useState 만들기
useState는 웹 앱을 매우 동적으로 만들 수 있는 반응 도구입니다. useState 변수는 변수가 변경될 때마다 해당 변수를 사용하는 모든 항목을 업데이트합니다. 이를 사용하여 입력 필드가 변경될 때마다 데이터를 변경할 수 있습니다.
/* App.js */
const [searchString, setSearchString] = useState('')
그런 다음 텍스트 입력을 변경할 때마다 searchString을 변경하는 함수를 만들 수 있습니다.
/* App.js */
const handleSearch = (string) => {
setSearchString(string)
}
...
<SearchBar handleSearch={handleSearch} />
/* SearchBar.js */
function SearchBar({handleSearch}) {
return (
<div>
<input
onChange={handleSearch(e.target.value)}
type="text"
/>
</div>
)
}
export default SearchBar
입력이 변경될 때마다 handleSearch는 useState를 동일한 값으로 업데이트합니다.
데이터를 사용하여 새 쿼리를 입력할 때마다 변경되는 별도의 배열을 만들 수 있습니다. .filter()를 사용하여 이를 수행하고 문자열에서 .includes()를 사용하여 필터링할 수 있습니다. useState를 사용했기 때문에 입력을 변경하면 배열이 변경됩니다.
/* App.js */
const searchArray = data.filter((item) => {
return item.name.toLowerCase().includes(searchString.toLowerCase())
})
handleSearch 다음에 searchArray를 생성해야 합니다. 그렇지 않으면 데이터가 여전히 이전 입력을 표시합니다.
/* App.js */
<DataContainer data={searchArray}/>
마지막으로 DataContainer 구성 요소에 데이터를 전달합니다. 이제 모든 데이터가 필터링되었으며 DataContainer에서 사용할 준비가 되었습니다.
Reference
이 문제에 관하여(React로 검색창 만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/xauvk/making-a-search-bar-with-react-28b8텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)