Reactjs 在引号中使用jsvar进行反应

Reactjs 在引号中使用jsvar进行反应,reactjs,Reactjs,我刚开始学习如何使用 我想为JSON数组中的每个元素使用ID。在引用之后,我在代码中尝试了它,但没有成功 它显示注释-[对象] 不幸的是${key}也不起作用了 这是我的密码: var data = [ {id: 1, author: "Pete Hunt", text: "Sample Comment 1"}, {id: 2, author: "Virginia Woolf", text: "Sample Comment 2"} ] var CommentList

我刚开始学习如何使用

我想为JSON数组中的每个元素使用ID。在引用之后,我在代码中尝试了它,但没有成功

它显示注释-[对象]

不幸的是${key}也不起作用了

这是我的密码:

  var data = [
    {id: 1, author: "Pete Hunt", text: "Sample Comment 1"},
    {id: 2, author: "Virginia Woolf", text: "Sample Comment 2"}
  ]

  var CommentList = React.createClass({
    render: function() {
      var commentNodes = this.props.data.map(function(comment, key) {
        return (
          <div className="commentListElement" key={key} id={"comment-"+{key}} >
          Key: {key} <br />
          ID: {comment.id} <br />
          Commented by {comment.author} <br />
          Comment: {comment.text}
          </div>
        );
      });
      return (
        <div className="commentList">
          {commentNodes}
        </div>
      );
    }
  })

  var CommentBox = React.createClass({
    render: function() {
      return (
        <div className="commentBox">
          Hello, world! I am a CommentBox.
          <CommentList data={data} />
        </div>
      );
    }
  });
  ReactDOM.render(
    <CommentBox />,
    document.getElementById('content')
  );
但我在浏览器中看到了这一点


我做错了什么?

在花括号内的JSX中,您应该编写javascript表达式,这样才能工作:

id={"comment-"+key}

此外,将数组索引用作react元素的键不是一种好的做法。您应该使用某种类型的业务标识符,例如comment.id.

在JSX中,在花括号内,您应该编写javascript表达式,这样就可以:

id={"comment-"+key}

此外,将数组索引用作react元素的键不是一种好的做法。您应该使用某种类型的业务标识符,例如comment.id.

只要您使用前缀或后缀使其唯一,数组索引就可以正常工作,因为并非所有情况下您都有唯一的Idarray索引,只要您使用前缀或后缀使其唯一,就可以正常工作,因为并非所有情况下您都有唯一的id