Как я могу получить только одно значение из внутренней функции useState?

#javascript #reactjs #react-hooks #use-effect #use-state

Вопрос:

Когда мы нажали на кнопку «Отправить», я хочу получить номер мобильного телефона в журнале консоли. Итак, как получить только одно значение из setValues handleInputChange функции in. Кто-нибудь??

 import React, {useState, useEffect} from "react";

const ContactForm = (props) => {

    const initialFieldValues= {
        fullName: '',
        mobile: '',
        email: '',
        address:''
    }

    var [values, setValues] = useState(initialFieldValues)

    useEffect(()=> {
        if (props.currentId === '')
        setValues({
            ...initialFieldValues
        })
        else
        setValues({
            ...props.contactObjects[props.currentId]
        })
    }, [props.currentId, props.contactObjects])

    const handleInputChange = e => {
        var {name, value} = e.target
        setValues({
            ...values,
            [name] : value
        })
    }

    const handleFormSubmit = e =>{
        e.preventDefault();
        props.addOrEdit(values)
        console.log(e.mobile);
    }

    return (
        <form autoComplete="off" onSubmit={handleFormSubmit}>
            <div className="form-group input-group">
                <div className="input-group-prepend">
                    <div className="input-group-text">
                        <i className="fas fa-user"></i>
                    </div>
                </div>
                <input className="form-control" placeholder="Full Name" name="fullName" 
                value={values.fullName}
                onChange={handleInputChange}
                />
            </div>
            <div className="form-row">
                <div className="form-group input-group col-md-6">
                    <div className="input-group-prepend">
                        <div className="input-group-text">
                            <i className="fas fa-mobile-alt"></i>
                        </div>
                    </div>
                    <input className="form-control" placeholder="Mobile" name="mobile" 
                    value={values.mobile}
                    onChange={handleInputChange}
                    />
                </div>
                <div className="form-group input-group col-md-6">
                    <div className="input-group-prepend">
                        <div className="input-group-text">
                            <i className="fas fa-envelope"></i>
                        </div>
                    </div>
                    <input className="form-control" placeholder="Email" name="email" 
                    value={values.email}
                    onChange={handleInputChange}
                    />
                </div>
            </div>
            <div className="form-group">
                    <textarea className="form-control" placeholder="Address" name="address"
                    value={values.address}
                    onChange={handleInputChange}
                    />
                </div>
                <div className="form-group">
                    <input type="submit" value={props.currentId===''?"Save":"Update"} className="btn btn-primary btn-block"/>
                </div>
        </form>
    );
}

export default ContactForm;
 

Комментарии:

1. console.log(values.mobile); ?

2. Таким же образом вы получаете доступ к любому свойству объекта. Что пошло не так с тем, что вы пробовали? Вы получаете доступ к отдельным значениям из состояния по всему вашему коду (например, к каждому отдельному полю формы).

3. Спасибо, что это сработало! Я использую console.log(например, мобильный);