I was trying to render simple react application with web-pack, all is compiles perfectly. On runtime code fails with following stacktrace:
Uncaught TypeError: Cannot read property 'setState' of undefined
at checkBoxCheck (App.js:174)...
Here is the code with the setState:
//App.js
export class Login extends Component {
constructor(props) {
super(props);
this.state = { remember: false };
}
checkBoxCheck(event) {
this.setState({
remember: !this.state.remember
});
console.log(this.state.remember);
}
render() {
let msg = this.state.remember ? "checked" : "uncheked";
return (
<form method="post">
<h1>{msg}</h1>
<label htmlFor="login">Login: </label>
<input type="text" name="login" />
<label htmlFor="pass"> Password: </label>
<input type="password" name="pass" />
<label htmlFor="remember">Remeber me: </label>
<input
type="checkbox"
name="remember"
defaultChecked={this.state.remember}
onChange={this.checkBoxCheck}
/>
</form>
);
}
}
Where is syntax issue?
Also i were trying to make an checkBoxCheck 'arrow' function, that cause compiling errors:
checkBoxCheck = event => {
this.setState((prevState, props) =>({
remember: !prevState.remember
}));
console.log(this.state.remember);
}
//output
SyntaxError: D:/Projects/Learning-projects/learn-react/src/App.js: Unexpected token (53:18)
51 | }
52 |
> 53 | checkBoxCheck = event => {
| ^
54 | this.setState((prevState, props) =>({
55 | remember: !prevState.remember
56 | }));