Reactの勉強で簡易なアプリを作っています。フレームワークはNext.jsを使用しています。
入力されたキーワードをクエリとしてGoogle Book APIを叩き、その検索結果をSearchResults
のpropsに渡したいです。
キーワードをuseStateで管理し、submitボタンを押した際にデータを取得してコンソールに表示させるところまでできたのですが、取得したデータをどのようにしてSearchResults
コンポーネントに渡せばよいのか分からず詰まってしまいました。
何かアドバイスを頂けないでしょうか?
tsx
1import { useState } from 'react'; 2import axios from 'axios'; 3import Layout from '../../components/Layout'; 4 5const getBooks = async (keywords: string) => { 6 const url = `https://www.googleapis.com/books/v1/volumes?q=${keywords}`; 7 const { 8 data: { items }, 9 } = await axios.get(url); 10 console.log(items) 11 return items; 12}; 13 14const BookSearch = () => { 15 const [keywords, setKeywords] = useState(''); 16 17 return ( 18 <Layout title="Book Search | Next.js + TypeScript Example"> 19 <form 20 onSubmit={e => { 21 e.preventDefault(); 22 getBooks(keywords); 23 }} 24 > 25 <input 26 type="text" 27 name="searchInput" 28 onChange={e => setKeywords(e.target.value)} 29 /> 30 <button type="submit">Search</button> 31 </form> 32 {/* <SearchResults /> getBooksで取得したデータをpropsで渡したい */} 33 </Layout> 34 ); 35}; 36 37export default BookSearch; 38
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/10/05 09:34
2020/10/05 11:42