reactjs - 在反应中迭代对象内的对象
问题描述
我在我想在反应中迭代的对象中有这个对象
const [PersonInfo, setPersonInfo] = useState({
{name: "Juan", address: "Street1"},
{name: "Kristine", address: "Street2"}
}
我试图在反应中使用
return (
<div>
{{Object.keys(PersonInfo).map(key =>
<option value={key}>{PersonInfo[key]}</option>
)}
</div>
)
但它只显示第一个值是 Juan。我的代码有什么问题?
解决方案
您有语法错误,您应该做的是保存array
在您的内部useState
并使用循环遍历它.map
const [personsInfo, setPersonsInfo] = useState([
{name: "Juan", address: "Street1"},
{name: "Kristine", address: "Street2"}
])
之后,您可以像这样渲染它:
return (
<select name="personAddress">
{personsInfo.map(person => {
return (
<option key={person.name} value={person.address}>{person.name}</option>
)
})}
</select>
);
这个例子假设每个人都有一个唯一的名字。因此key={person.name}
.
推荐阅读
- python - 为什么我用 SymPy 的 parse_expr 得到这个结果
- java - Java:从画布上的图像绘制羽毛形状
- python - 使用其他命名空间/字典更新 argparse 命名空间
- c++ - 在opengl中旋转3D模型
- matlab - MATLAB 中的通用文件路径
- selenium - Driver.getWindowHandles() 在 Windows 10 上的 IE11 中始终返回 1
- php - 删除phpmyadmin中的行
- python - BeautifulSoup 中的表属性含义
- mysql - 排名语句中的用户定义变量
- javascript - 导航栏项目背景颜色未按预期工作