Переменная состояния 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