{subjects.map((item, i) => (
<li className="travelcompany-input" key={i}>
<span className="input-label">{ item.name }</span>
</li>
))}
但这会引发
subjects.map is not a function
错误。首先,我必须定义对象的键,在该对象处创建键数组,并在其中循环并显示
subject.names
。我还尝试过的是:
{Object.keys(subjects).map((item, i) => (
<li className="travelcompany-input" key={i}>
<span className="input-label">key: {i} Name: {subjects[i]}</span>
</li>
))}
最佳答案
调用Object.keys
时,它返回对象键的数组。Object.keys({ test: '', test2: ''}) // ['test', 'test2']
当您调用Array#map
时,您传递的函数将给您2个参数。
当您想要获取数据时,需要使用
item
(或在下面的示例keyName
中)而不是i
{Object.keys(subjects).map((keyName, i) => (
<li className="travelcompany-input" key={i}>
<span className="input-label">key: {i} Name: {subjects[keyName]}</span>
</li>
))}