Handling Forms

With most web applications, you will have some kind of a form, a way for your user to communicate with the application. In the case of our application, we need to set up a form for our search functionality.

Setting up the keyword search form

First, you need to declare your form with the form tag in your JSX. You want your search upfront and center when a user loads the site. For this reason, you will place your <form> tag and its contents in the index.js file, which renders your homepage, so place an input tag inside the form tag.

Press + to interact
return (
<div className='container'>
<Head>
<title>Create Next App</title>
<link rel="icon" href="/favicon.ico" />
<link rel="stylesheet" href="/styles.css"/>
</Head>
<h1>Giphy Search App</h1>
<form>
<input type="text"/>
</form>
<div class="giphy-search-results-grid">
{initialData.catGiphys.data.map((each, index) => {
return(
<div key="index">
<h3>{each.title}</h3>
<img src={each.images.original.url} alt={each.title}/>
</div>
)
})}
</div>
</div>
)
}

onChange event

Now you can add an onChange attribute to the input tag. This listens to any changes to that element. Specifically, you want to know when the text being typed in the input is changed.

Press + to interact
<form>
<input onChange={} type="text"/>
</form>

Inside the onChange event, you will place a ...