reactjs - 一次 ReactJS 列出对象列表中的项目
问题描述
我有这个文件:
产品列表.js
import React from "react";
export default function ProductList() {
document.addEventListener("DOMContentLoaded", () => {
var listeditems = {};
const list = document.getElementById("list");
if (items !== null) {
for (let f = 0; f < Object.keys(items).length; f++) {
const item = items[f];
if (!Object.keys(items).includes(item.name)) {
listeditems[item.name] = null;
list.innerHTML +=
"<p>" + item.name + ", sells for €" + item.price + "</p>";
}
}
} else {
list.innerText = "None yet!";
}
});
return (
<span id="list"></span>
);
}
在 App.js 中呈现如下:
import ProductList from './ProductList';
return(
// Something
<ProductList/>
// And more...
);
items
在哪里{"0":{"name":"Banana","price":"0.22"}}
。这输出:
<span id="list"><p>Banana, sells for €0.22</p><p>Banana, sells for €0.22</p></span>
如您所见,<p>Banana, sells for €0.22</p>
它在那里有两次,而在对象(列表)中只有一次。
<p>...</p>
在列表中的每个项目中只获得一个。
解决方案
var out;
if (items !== null) {
for (let f = 0; f < Object.keys(items).length; f++) {
const item = items[f];
if(item.name !== undefined){
out += "<li>" + item.name + ", sells for €" + item.price + "</li>";
}
}
window.addEventListener('DOMContentLoaded', () => {
document.getElementById("list").innerHTML= out.replace("undefined", "");
});
} else {
window.addEventListener('DOMContentLoaded', () => {
document.getElementById("list").innerHTML="<li>None yet</li>";
});
}
return (
<div>
<h3>A list of your products</h3>
<ul id="list"></ul>
</div>
);
推荐阅读
- php - 使用 orderby 缓存关系 laravel
- javascript - 替换保留原始空间的单词
- http - 只下载文件的一部分
- stata - 我可以在 Stata 中使用哪个函数来复制定量变量?
- python - 列表仅包含整数列表中的一个字符串
- postgresql - 通过 AWS Lambda 连接到 RDS AWS 时,Psycopg2 挂起
- php - 显示目录中的所有 .jpg 图像和 .mp4 文件?
- json - 无法将一个 json 模式引用到另一个 json 模式
- javascript - jQuery:尝试创建一个仅在用户名和密码正确时才重定向的登录页面
- reactjs - 如何从数组映射到谷歌反应图表(反应)?