【问题标题】:React using JS var inside quotes在引号内使用 JS var 做出反应
【发布时间】:2016-12-18 15:05:12
【问题描述】:

我刚开始使用 React site 上的教程学习 React

我想为 JSON 数组中的每个元素使用 id。参考this link后,我在我的代码中尝试了<div className="commentListElement" key={key} id={"comment-"+{key}} >,但还是不行。

显示comment-[object Object]

遗憾的是,${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')
  );

但我在浏览器中看到了这个

我做错了什么?

【问题讨论】:

    标签: reactjs


    【解决方案1】:

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

    id={"comment-"+key}
    

    此外,使用数组索引作为反应元素的键不是一个好习惯。您应该使用某种业务标识符,例如comment.id.

    【讨论】:

    • 数组索引只要你前缀或后缀使其唯一就可以正常工作,因为并非在每种情况下你都有唯一的 Id
    猜你喜欢
    • 2021-11-11
    • 1970-01-01
    • 2019-05-09
    • 2021-08-07
    • 2015-09-06
    • 2018-06-13
    • 2021-02-13
    • 2020-12-13
    • 2017-08-19
    相关资源
    最近更新 更多