繁体   English   中英

从React.js中的div获取ID

[英]Getting ID from div in React.js

所以我正在尝试在div属性中检索数据。 JSFiddle显示了我遇到的问题。 事件触发后,this.state.value设置为空字符串。

在阅读了另一个堆栈溢出文章之后 ,我开始使用div的data- *属性,但是我无法使用jQuery,所以我切换到了id。 有任何想法吗?

的jsfiddle

class GettingAttributes extends React.Component {
  constructor(props) {
    super(props)
    this.state = {value: 'Hello!'};

    this.bar = this.bar.bind(this);
  }

  bar(e){
    this.setState({value: e.target.id})
  }

  render() {
    return (
      <div id="foo" onClick={this.bar}>
        <p>{this.state.value}</p>
      </div>
    );
  }
}

采用

e.currentTarget.id

代替

e.target.id

.currentTarget将定位实际包含事件侦听器的元素。 在您的方案中,.target是带有文本的p标记,在您的状态中没有要设置的ID。

您可以通过id以及data-*属性来实现。 但是首选方法是使用data-*属性。

请考虑您解决方案的这个JSFiddle链接。

您应该在要从中提取数据的元素上设置ref,然后可以使用它来将数据设置为state。 在代码中,如果你更换onClick={this.bar}onClick={this.barById}然后将代码从数据提取id ,而在前者的情况下它将从数据中提取data-*属性。

之所以无法选择id属性,是因为当前的e.target<div>的子e.target ,该子元素是<p> 这是一个可行的建议解决方案:

class GettingAttributes extends React.Component {
  constructor(props) {
    super(props)
    this.state = {value: 'Hello!'};

    this.bar = this.bar.bind(this);
  }

  bar(e){
    this.setState({value: e.target.id})
  }

  render() {

    return (
      <div id="foo" onClick={this.bar}>
        {this.state.value}
      </div>
    );
  }
}

ReactDOM.render(<GettingAttributes />, document.querySelector("#app"))

您也可以通过将点击处理程序添加到<p>元素来解决此问题:

  <div >
    <p id="foo" onClick={this.bar}>{this.state.value}</p>
  </div>

使用e.currentTarget.id可以快速解决您的问题,只需知道currentTarget代表什么而不是Target 祝好运!

在中使用.map<div> 标签-react.js</div><div id="text_translate"><p> 我真的很感激任何帮助。 所以该项目是一个反应项目。</p><p> 这是我获取<a href="https://i.stack.imgur.com/WelCP.png" rel="nofollow noreferrer">的内容:获取请求</a></p><p>这是我从服务器响应的内容: <a href="https://i.stack.imgur.com/e2QG3.png" rel="nofollow noreferrer">Response from server</a></p><p> 我试了一下 Postman,看看我收到的是什么类型的 json。 这是它返回的内容: <a href="https://i.stack.imgur.com/yg6IE.png" rel="nofollow noreferrer">Postman 测试</a></p><p>我遇到的问题是我无法 map 收到的数据。 一旦输入链接,我只想在首页上以一种很好的方式显示接收到的数据。</p><p> 是否可以将 map 放在 div 标签内? 或者还有另一种方法吗?</p><p> <em><strong>请注意该项目是作为功能组件编写的</strong></em></p></div>

[英]Using .map in <div> tag - react.js

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM