javascript - 如何在 ReactJs 中获取标签属性值?

标签 javascript jquery html reactjs

我用 reactjs 创建了一个小应用程序。在按钮标签上,我设置了一个属性并传递了值。当我单击按钮时需要获取该属性值。这个怎么用react js实现?

示例代码,

var React  = require('react');
var CommentWall = React.createClass({
  getInitialState:function(){
    return {
      data:[]
    }
  },
  commentOpen:function(event){
    var targetID = this.state.dataId;
    console.log(targetID);
    $.ajax({
     url:url+"comments/"+targetID,
     type:"GET",
     dataType:"JSON",
     success:function(data){
       this.setState({data:data});
     });
  }
  render:function(){
    var wallCard;
    var commentWall = this.props.data.map(function(el, i){
      wallCard = <div className="card-content">
          <div className="content-inner">{el.LINES}</div>
          <button dataId={el.ID}>Click</button>
        </div>;
      return <div className="card wall-card" key={i}>{wallCard}</div>;
    }.bind(this));
    return (
      <div>{commentWall}</div>
    );
  }
});

module.exports = CommentWall;

最佳答案

State – 不是被点击元素的状态,它是您的 CommentWall 组件的状态,它只有 data 键。 属性不是必须使用的。它不是 React 方式。

您可以关闭或简单绑定(bind)以将 ID 传递到您的函数中。

绑定(bind)示例:

var React  = require('react');
var CommentWall = React.createClass({
  getInitialState: function(){
    return {
      data:[]
    }
  },

  commentOpen: function(targetID, event){
    console.log(targetID);
    $.ajax({
     url:url+"comments/"+targetID,
     type:"GET",
     dataType:"JSON",
     success:function(data){
       this.setState({data:data});
     });
  },

  render:function(){
    var wallCard;
    var commentWall = this.props.data.map(function(el, i){
      wallCard = <div className="card-content" onClick={this.commentOpen.bind(this, el.ID)>
          <div className="content-inner">{el.LINES}</div>
          <button>Click</button>
        </div>;
      return <div className="card wall-card" key={i}>{wallCard}</div>;
    }.bind(this));
    return (
      <div>{commentWall}</div>
    );
  }
});

module.exports = CommentWall;

关于javascript - 如何在 ReactJs 中获取标签属性值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36194424/

相关文章:

jquery - 更有效的方法来获取具有特定 css 类的唯一元素?

jquery - Bootstrap 3 typeahead 不适用于 bootstrap 标签

javascript - 如何在Reactjs中渲染html元素?

javascript - 从基础组件创建组件预设

javascript - 避免在 html 标签元素中为相同的主题标签使用空包装

php - AJAX 未将数据传递给 php

jquery - 我怎样才能让我的 div 在第二次点击时恢复到原来的背景颜色?

javascript - 为什么我的页面加载时没有任何 CSS?

javascript - 哈希更改时更改样式

javascript - 在 chrome 开发者工具中禁用 debugger 语句