【发布时间】:2017-03-31 04:38:02
【问题描述】:
我正在 reactjs 中动态构建一个 tbody。我有一个从循环中创建种子数据的函数:
accounts.push(
<tr key={i}>
<td>{obj.type}</td>
<td>{obj.name}</td>
<td>{obj.balance}</td>
<td>{obj.id}</td>
</tr>);
它有效,我可以填充行以响应 <tbody>{accounts}</tbody>。现在我正在尝试动态添加<td>。我尝试了以下方法,但它创建了一个字符串,ReactJS 抛出错误Warning: validateDOMNesting(...): Text nodes cannot appear as a child of <tbody>:
let fields = ['type', 'name', 'balance', 'id'];
data.forEach( function(element, index) {
let fieldsLabel = `<tr key=${++i}>`;
fields.forEach( function(key, index) {
fieldsLabel = fieldsLabel.concat(`<td>${element[key]}</td>`);
});
fieldsLabel = fieldsLabel.concat(`</tr>`);
accounts.push(Array.from(fieldsLabel));
});
我想做一些简单的事情,如下所示,但由于打开了<tr> 标签,它不起作用:
data.forEach( function(element, index) {
let row = []
row.push(<tr key={++i}>)
fields.forEach( function(key, index) {
row.push(<td>{element[key]}</td>)
});
row.push(</tr>)
accounts.push(row.join(''));
});
如何将<td> 动态推送到数组中,以便可以在 {accounts} 这样的 reactjs 中使用?
【问题讨论】:
标签: javascript reactjs