映射对象 React -> 键问题
Mapping Object React -> Issue with Keys
将把手/marionette 项目转换为 React。
需要映射两个对象的数组:
[{COAL: 462, GAS: 400, MIXED: 230, OIL: 288, TOTAL: 1380}, {COAL: 0, GAS: 0, MIXED: 0, OIL: 0, TOTAL: 0}]
这就是我目前的做法:
<tr className="Total">
<td className="tableBoldBorder hide">Total</td>
{props.totals.map(totals =>
R.values(totals).map(totals => (
<td className="{{@key}}Column">{formatNumberValues(totals)}</td>
))
)}
</tr>
一切都很好。不过请注意@key,它仍然是一个车把功能。本质上,我希望类名与正在呈现的列一致,即。 COALColumn -> 462,GASColumn -> 400 等
问题是,我在映射过程中丢失了密钥。 R.values(totals).map 给出以下输出:
[[462, 400, 230, 288, 1380], [0, 0, 0, 0, 0]]
是否可以访问密钥以允许动态映射类名?
感谢阅读!
编辑:
我目前得到的:
我想要的结果:
className "TOTALColumn" 将在该特定列上呈现边框。正如我在附图中所做的那样,对此进行硬编码不是一种选择。
也许 Object.entries
是您要找的东西?
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/entries
您可以使用 Object.keys
而不是 Object.values
来映射键:
<tr className="Total">
<td className="tableBoldBorder hide">Total</td>
{props.totals.map(totals =>
Object.keys(totals).map(key => (
<td className={`${key}Column`}>{formatNumberValues(totals[key])}</td>
))
)}
</tr>
将把手/marionette 项目转换为 React。
需要映射两个对象的数组:
[{COAL: 462, GAS: 400, MIXED: 230, OIL: 288, TOTAL: 1380}, {COAL: 0, GAS: 0, MIXED: 0, OIL: 0, TOTAL: 0}]
这就是我目前的做法:
<tr className="Total">
<td className="tableBoldBorder hide">Total</td>
{props.totals.map(totals =>
R.values(totals).map(totals => (
<td className="{{@key}}Column">{formatNumberValues(totals)}</td>
))
)}
</tr>
一切都很好。不过请注意@key,它仍然是一个车把功能。本质上,我希望类名与正在呈现的列一致,即。 COALColumn -> 462,GASColumn -> 400 等
问题是,我在映射过程中丢失了密钥。 R.values(totals).map 给出以下输出:
[[462, 400, 230, 288, 1380], [0, 0, 0, 0, 0]]
是否可以访问密钥以允许动态映射类名?
感谢阅读!
编辑:
我目前得到的:
我想要的结果:
className "TOTALColumn" 将在该特定列上呈现边框。正如我在附图中所做的那样,对此进行硬编码不是一种选择。
也许 Object.entries
是您要找的东西?
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/entries
您可以使用 Object.keys
而不是 Object.values
来映射键:
<tr className="Total">
<td className="tableBoldBorder hide">Total</td>
{props.totals.map(totals =>
Object.keys(totals).map(key => (
<td className={`${key}Column`}>{formatNumberValues(totals[key])}</td>
))
)}
</tr>