Состояние реакции меняется автоматически при вводе - PullRequest
0 голосов
/ 31 мая 2019

Переменная состояния index.js меняется автоматически даже без setState().

Я пытался сделать форму с кнопкой отправки и сброса. Мне нужно было начальное значение состояния для сброса формы. Начальное значение находится в переменных данных. Но когда я редактирую форму, меняется и состояние, и переменная данных

class User extends Component {

        state = {
          formData: data
        }     

    updateForm = (newerState) =>{
        console.log(this.state);
        console.log(data);    

    }

    submitform =(event)=>{
        event.preventDefault();
        let dataToSubmit = {};

        for(let key in this.state.formData){
            dataToSubmit[key]=this.state.formData[key].value;
        }
    }

    resetForm =()=>{
        console.log(data);
        this.setState({formData: data});
    }

    render(){

        return(

            <div>
                <form onSubmit={this.submitform}>

                    <FormFields 
                    formData= {this.state.formData}
                    change={(newerState)=>this.updateForm(newerState)}
                    />
                <button type='submit'>Submit</button>
                <button type='button' onClick={this.resetForm}>Reset</button>
                </form>
            </div>
        )
    }
}

Я исключил: console.log (this.state); //user.js:12 console.log (данные); //user.js:13

выведет начальные значения data.json, но на выходе будет

{element: "input", value: "ans", label: true, labeltext: "Ques1", config: {…}}
1: {element: "input", value: "ans", label: true, labeltext: "Ques2", config: {…}}
2: {element: "input", value: "ans", label: true, labeltext: "Ques3", config: {…}}

если я нажму клавишу Backspace во всех полях ввода. 1,2,3 удаляется из data.value

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...