在输入标记

时间:2018-04-20 05:53:12

标签: javascript reactjs

我刚开始进入React的世界,到目前为止我喜欢它。我终于开始掌握基础知识并尝试创建一个简单的程序。 此程序只需在文本框中输入您输入的内容,并将其显示在标题标记中。我似乎无法弄清楚为什么这不起作用。我将文本显示在控制台中,但无法弄清楚为什么它不会显示在我的标记中。提前感谢您的帮助。任何提示都非常感谢。

class Header extends Component{
    render(){
        return(
            <div className = "header">
                <h1>Enter Your Name</h1>
            </div>
        )
    }
}

class Input extends Component{
    render(){
        return(
            <div className = "input_container">
                <input onChange = {this.props.onChange} className = "input_field" type = "text" placeholder = "Name..."></input>
            </div>
        )
    }
}

class App extends Component {
    state = {
        inputValue : ""
    }

    onChange = (e) => {
        console.log(e.target.value)
        this.setState = ({inputValue: e.target.value});
    }

    render(){
        return(
            <div>
            <Columns />
            <Input
                onChange = {this.onChange}/>
            <h2>{this.state.inputValue}</h2>
        </div>
        )
    }
}

1 个答案:

答案 0 :(得分:0)

您的setState语法不正确。它是一个功能而不是一个对象

this.setState ({ inputValue: e.target.value });

您的代码将是

class App extends Component {
  state = {
    inputValue: ""
  };

  onChange = e => {
    console.log(e.target.value);
    this.setState({ inputValue: e.target.value });
  };

  render() {
    return (
      <div>
        <Input onChange={this.onChange} />
        <h2>{this.state.inputValue}</h2>
      </div>
    );
  }
}