Tell us what’s happening:
My code for this challenge is not passing the tests. I am getting error messages saying:
The submitMessage method should clear the current input.
Clicking the Add message button should call the method submitMessage which should add the current input to the messages array in state.
However, I cannot find any issues with my code as compared to pieces of solutions on other forum posts. What am I doing wrong?
Your code so far
class DisplayMessages extends React.Component {
constructor(props) {
super(props);
this.state = {
input: '',
messages: []
};
this.handleChange = this.handleChange.bind(this);
this.submitMessage = this.submitMessage.bind(this);
}
// add handleChange() and submitMessage() methods here
handleChange(event) {
this.setState({
input: event.target.value
});
}
submitMessage() {
let newMessages = [...this.state.messages, this.state.input]
this.setState({
messages: newMessages,
input: ''
})
}
render() {
const items = this.state.messages.map((item) => <li>{item}</li>)
return (
<div>
<h2>Type in a new Message:</h2>
{ /* render an input, button, and ul here */ }
<form onSubmit={this.submitMessage}>
<input value={this.state.input} onChange={this.handleChange}/>
<button type="submit">Add message</button>
</form>
<ul>
{items}
</ul>
{ /* change code above this line */ }
</div>
);
}
};
Your browser information:
User Agent is: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36
.
Link to the challenge:
https://learn.freecodecamp.org/front-end-libraries/react-and-redux/manage-state-locally-first