Receive error message: Unexpected token

I tried to use this code in react, but I was getting this error:

Unexpected token.

I tried to bindassign a value to something on htmland see if the change in value reflects in html, like a angular ng-bindings.

the code:

class NameForm extends React.Component {
    constructor(props) {
        super(props);
        this.state = {value: ''};

        this.handleChange = this.handleChange.bind(this);
        this.handleSubmit = this.handleSubmit.bind(this);
    }

    handleChange(event) {
        this.setState({value: event.target.value});
    }


    handleSubmit(event) {
        alert('A name was submitted: ' + this.state.value);
        event.preventDefault();
    }

    render() {
        return (
            <form onSubmit={this.handleSubmit}>
                <label>
                    Name:
                    <input type="text" value={this.state.value} onChange={this.handleChange} />
                </label>
                <input type="submit" value="Submit" />
            </form>
            <a>{this.state.value}</a>
        );
    }
}

ReactDOM.render(
    <NameForm />,
    document.getElementById('root')
);

Can someone tell me where I am going wrong.

+1
source share
1 answer

Reason : you are returning more than one element htmlfrom a method render. In a component, renderyou can return only one node; if you have, say, a list of returned items, you should wrap them inside div, spanor whatever component.

, render() function, Functions return .

:

return (
   <div>
       <form onSubmit={this.handleSubmit}>
         <label>
           Name:
           <input type="text" value={this.state.value} onChange={this.handleChange} />
         </label>
         <input type="submit" value="Submit" />
       </form>
       <a>{this.state.value}</a>
   </div>
);
+4

Source: https://habr.com/ru/post/1674976/


All Articles