收到错误消息:意外的令牌

IT技术 reactjs
2021-05-08 05:53:10

我在 中尝试此代码react,但出现此错误:

意外的标记 。

我试图bind在value上的东西html,看看value变动反映了html,就像一个angular ng-bindings

代码:

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')
);

有人可以告诉我我哪里出错了。

1个回答

原因是,你htmlrender方法中返回了多个元素,在一个组件的 中render,你只能返回一个节点;如果你有,比如说,要素回报的列表,你必须与包裹内的divspan或任何其他component

不要忘记render()基本上是 a functionFunctions总是接受许多参数并且总是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>
);