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

标签 javascript reactjs parameters state

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

目前尚未定义。

我该怎么办?

代码

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

最佳答案

欢迎来到 StackOverflow!

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

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

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

希望这有帮助!

关于javascript - 无法传递标签属性参数?(React),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45097585/

相关文章:

javascript - 多次使用否定前瞻(或用 ^ 匹配多个字符)?

reactjs - Material-UI:使IconButton仅在悬停时可见吗?

parameters - Ada 输出参数

javascript - 无法使用 QUnit 的参数化插件

javascript - javascript函数定义中的对象

javascript - 用新的 HTML 内容替换每个出现的单词

javascript - Qt 5.12 QML,在javascript中通过var选择QML对象

javascript - 启动 Tracker 的自动运行功能需要什么?

javascript - angularjs `$digest`什么时候触发?

reactjs - react .js : Onblur event fires every key press