无法传递标签属性参数?(React)

时间:2017-07-14 07:50:48

标签: javascript reactjs parameters state

我想在console.log中获取标记的name属性(" mylocation")和console.log

目前尚未定义。

我该怎么办?

代码

class App extends React.Component {

    constructor(props) {
      super(props);
      this.state = {
        category: "myhome"
      };
      this.changeCategory = this.changeCategory.bind(this);
    }

    changeCategory (e, {name}) {
      console.log(name);
      this.setState({
        category: this.state.name
    });
      console.log(name);
    } 
    render() {
      return(
        <div className="app">
          <div
             name = "myhome"
             onClick = {this.changeCategory}
          >
            HiHi
          </div>
          <div
              name = "mylocation"
              onClick = {this.changeCategory}
          >
           myLocation
          </div>
        </div>
      );
     }
    }

    export default App;
    ReactDOM.render(<App />, document.querySelector('.app'));

1 个答案:

答案 0 :(得分:1)

欢迎来到StackOverflow!

单击元素的name属性可通过传递给事件处理程序的事件对象获得。该对象有一个名为target的属性,它是您单击的DOM节点。通过此节点,您可以获得name属性。

换句话说,您的更改处理程序应如下所示:

changeCategory(e) {
  console.log(e.target.name);
  this.setState({ category: e.target.name });
}

希望这有帮助!