在React Class Component输入元素上的handleChange中传递事件时出错?

时间:2019-04-09 23:28:07

标签: javascript reactjs

我在弄清楚如何将event.target.value传递到下面的setState时遇到麻烦。

我当时以为第一个事件(= event =)将在闭包中传递并可以用于返回,但是在调试时我不确定。

前往event.target.value的权利是什么?

class InputElement1CC extends React.Component {
  state = {
    inputText: "",
    historyList: []
  };

  handleChange = event => {
    this.setState(previousState => {
      return {
        inputText: event.target.value,
        historyList: [...previousState.historyList, event.target.value]
      };
    });
  };

  render() {
    return (
      <div>
        <a href="/">home</a>
        <h1>InputElement1CC - Class Component</h1>
        <input placeholder="Enter Some Text" onChange={this.handleChange} />
        <br />
        {this.state.inputText}
        <hr />
        <br />
        <ul>
          {this.state.historyList.map(rec => {
            return <div>{rec}</div>;
          })}
        </ul>
      </div>
    );
  }
}

export default InputElement1CC;

1 个答案:

答案 0 :(得分:1)

将值设置为变量并使用该变量。像这样:

 handleChange = event => {
    const value = event.target.value;
    this.setState(
      state => ({
        inputText: value,
        historyList: [...state.historyList, value]
      }),
      () => console.log("state", this.state)
    );
  };