Hands-On Full Stack Development with Spring Boot 2 and React by Juha Hinkula

Hands-On Full Stack Development with Spring Boot 2 and React by Juha Hinkula

Author:Juha Hinkula
Language: eng
Format: epub, mobi
Tags: COM051260 - COMPUTERS / Programming Languages / JavaScript, COM060160 - COMPUTERS / Web / Web Programming, COM060180 - COMPUTERS / Web / Web Services and APIs
Publisher: Packt Publishing
Published: 2019-05-21T07:41:38+00:00


Typically, we have more than one input field in the form. One way to handle multiple input fields is to add as many change handlers as we have input fields, but this creates a lot of boilerplate code, which we want to avoid. Therefore, we add the name attributes to our input fields. We can utilize this in the change handler to identify which input field triggers the change handler. The name attribute value of the input field must be the same as the name of the state in which we want to save the value.

First, we introduce a state called user using the useState hook, as shown in the following code. The user state is an object with three attributes: firstName, lastName, and email:

const [user, setUser] = useState({firstName: '', lastName: '', email: ''});

The input change handler now looks like the following code. If the input field that triggers the handler is the first name field, then event.target.name is firstName, and the typed value will be saved to the state object's firstName field. Here, we also use the object spread syntax that was introduced in the React hooks section. In this way, we can handle all input fields with the one change handler:

const inputChanged = (event) => {

setUser({...user, [event.target.name]: event.target.value});

}

The following is the full source code of the component:

import React, { useState } from 'react';



Download



Copyright Disclaimer:
This site does not store any files on its server. We only index and link to content provided by other sites. Please contact the content providers to delete copyright contents if any and email us, we'll remove relevant links or contents immediately.