javascript - How do make an api fetch request on button click Reactjs? - Stack Overflow
Tue Jul 05 2022 20:46:52 GMT+0000 (Coordinated Universal Time)
Saved by
@clay
#javascript
const App = () => {
const [YearList, setYearsData] = useState([]);
const [NamesList, setNameData] = useState([]);
const [itemList, setItemList] = useState([]);
let [year, setYear] = useState(null);
let handleYearChange = (e) => {
setYear(e.target.value);
};
let [searchQuery, setSearchQuery] = useState('');
let handleSearchChange = (e) => {
setSearchQuery(e.target.value);
};
let [year, setYear] = useState(null);
let handleYearChange = (e) => {
setYear(e.target.value);
};
let [searchQuery, setSearchQuery] = useState('');
let handleSearchChange = (e) => {
setSearchQuery(e.target.value);
};
const fetchYearList = async () => {
try {
const response = await fetch('http://localhost:56384/api/YearList');
setYearsData(await response.json());
} catch (error) {
console.log('Failed to fetch from Amazon DB', error);
}
};
const fetchNameList = async () => {
try {
const response = await fetch('http://localhost:56384/api/NameList');
setNameData(await response.json());
} catch (error) {
console.log('Failed to fetch from Amazon DB', error);
}
};
const fetchItemData = async () => {
try {
const response = await fetch(
`http://localhost:56384/api/RecallSearch?searchText=${searchQuery}&year=${year}`
);
const itemData = await response.json();
setItemList(itemData);
} catch (error) {
console.log('Failed to fetch from Amazon DB', error);
}
};
const handleSearch = () => {
fetchItemData();
};
useEffect(() => {
fetchYearList();
fetchNameList();
fetchItemData();
}, []);
return (
<div className='App'>
<TitleCard />
<input
type='text'
value={searchQuery}
onChange={handleSearchChange}
placeholder='Search Amazon Items'
/>
<select onChange={handleYearChange}>
<option value='-- Select year --'> -- Select a Year -- </option>
{YearList.map((year) => (
<option key={year} value={year}>
{year}
</option>
))}
</select>
//Button that isnt working
<button onClick={handleSearch}>Search</button>
</div>
);
};
export default App;
content_copyCOPY
https://stackoverflow.com/questions/69753857/how-do-make-an-api-fetch-request-on-button-click-reactjs
Comments