繁体   English   中英

遍历对象键并将标签添加到值

[英]Loop through object keys and add tags to values

我正在尝试使用JavaScript和JSON数据从数据库中呈现HTML页面。 但是,某些数据应呈现为图像,而其他数据应呈现为链接。 如何更改或添加HTML标签?

我在数据库中存储的内容没有任何HTML属性:

{
  "projects" : {
    "one" : {
      "a" : "E-Network",
      "b" : "/images/projects/unfccc/logo.gif",
      "c" : "/unfccc",
      "d" : "The E-Network"
    },
    "two" : {
      "a" : "User Experience Design",
      "b" : "/images/projects/rex/logo.gif",
      "c" : "/rex",
      "d" : "Rejseplanen Experience"
    }
  }
}

然后使用React我将带有键值对的Object传递给消息组件。 然后,我在回调方法中使用Object.keys在单个标签内呈现project.one的内容:

class Message extends React.Component {
   render(){

     function mapObject(object, callback) {
      return Object.keys(object).map(function (key) {
        return callback(key, object[key]);
      });
    }

    return (
      <div>
       {mapObject (this.props.data.one, function(key, value) {
         return <h1 key={key}>{value}</h1>
       })}
      </div>
      )
   }
}
export default Message;

输出:

但是,如何控制每个键值对使用的标记? 我看到的唯一解决方案是彼此嵌套四个Object.key并展平数据库结构,但是我认为这不是一个很好的解决方案,您能告诉我一种更好的方法来在HTML标签中呈现数据吗?

您总是返回<div><h1></div> 如果您检测到图像或链接,请使用适当的标签imagea href

暂无
暂无

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

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