I am new to reactjs and trying to implement simple todo app. But, upon submit I am not able to push into an array i.e a state variable.
Following is my code:
import React, { Component } from 'react';
class ToDo extends Component{
constructor(props){
super(props)
this.state={list:['hello'],item:''}
this.handleSubmit=this.handleSubmit.bind(this)
this.handleSearchChange=this.handleSearchChange.bind(this)
}
handleSubmit(e){
e.preventDefault();
this.setState(state=>({list:(state.list.push(this.state.item))}))
}
handleSearchChange(e){
this.setState({item:e.target.value})
}
render(){
console.log('state:',this.state.list)
let listing=this.state.list.map((item)=><li key={item}>{item}</li>)
return(
<div >
<form onSubmit={this.handleSubmit}>
<div className="form-group">
<label>
<input className="form-control "type="text" value={this.state.item} onChange={this.handleSearchChange} />
</label>
<label>
<input type="submit" value="Submit" className="form-control" />
</label>
</div>
</form>
<ul>{listing}</ul>
</div>
)
}
}
export default ToDo;
When I try to click on submit it redirects to error. Help would be appreciated. Thanks.