我有问题动态添加jsx表行到表中的反应。
我的案例如下:
如果表行包含子行,请将它们添加到主行之外。
这是我最初的设计:
{rows.map((row) => {
const expanded = _.includes(expandedRows, row.name); // check if row is expanded or not
const subRows = row.subRows && row.subRows.map((subRow) =>
<SubRow key={subRow.name} theme={theme} subRow={subRow.name} />);
return (
<div>
<Row
key={row.name}
theme={theme}
handleUpdate={handleUpdate}
handleExpandOrCollapseRow={handleExpandOrCollapseRow}
/>
{expanded && row.subRows && subRows}
{expanded && !row.subRows && <p>No subrows exist</p>}
</div>
);
})
问题是不允许div作为tbody标记中的子级。你知道我怎样才能不把我的报税单写进div里就解决这个问题吗?
我在考虑将整个tbody移动到我的行组件,并有条件地在那里渲染子行,但是我看不出这有什么帮助,因为我仍然不能在返回周围使用任何包装器...我唯一能使用的包装器是tbody,这只能作为所有行的父级发生一次。
有什么想法吗?
相反,您可以简单地收集数组
中的行
,然后返回数组
。
renderTableRows() {
const rows = [];
// Push the main row first
rows.push(
<Row
key={row.name}
theme={theme}
handleUpdate={handleUpdate}
handleExpandOrCollapseRow={handleExpandOrCollapseRow}
/>
);
// Then push the subrows
row.subRows.forEach(subRow =>
rows.push(
<SubRow key={subRow.name} theme={theme} subRow={subRow.name} />
);
);
return rows;
}
render() {
if( this.state.isLoading ) {
return Table.renderSpinner();
}
return (
<table>
{ this.renderTableRows() }
</table>
);
}
我不能肯定地说,如果代码将为您开箱即用。但是这种模式应该可以帮助你解决问题。
我有以下一段代码: 有没有一种很好的方法可以有条件地添加元素,比如使用流操作?我只想在列表为空时添加method2中的元素,否则返回,以此类推。 编辑:值得一提的是,这些方法包含繁重的逻辑,因此需要防止执行。
问题内容: 如果满足特定条件,是否有办法仅向React组件添加属性? 我应该在渲染后基于Ajax调用将required和readOnly属性添加到表单元素中,但是由于readOnly =“ false”与完全省略该属性不同,因此我看不到如何解决此问题。 下面的示例应解释我想要的内容,但将无法正常工作(解析错误:意外的标识符)。 问题答案: 显然,对于某些属性,如果您传递给它的值不真实,React足
问题内容: 是否可以根据条件向标签添加内容?像在此示例中一样,当我只想在第一次迭代中添加时(仅用于的第一个元素)? 问题答案: 是的,在这种情况下,AngularJS具有两个指令: 可以使用ng-show / ng-hide指令族基于评估表达式的结果来隐藏(通过使用显示CSS规则)DOM 3的一部分。 如果我们想有条件地物理删除/添加DOM的一部分,那么ng-switch指令家族(ng-switc
我尝试了各种方式添加Excel电子表格。但问题总是相同的。 我尝试了这里提出的代码, 将工作表添加到现有excel文件 使用Apache POI for Java在现有Excel工作簿中创建新工作表 问题是:
对于在其生命周期的某个点隐藏的组件,呈现它的最佳方式是什么?1)渲染组件,但不显示它(显示:无)。2)只在需要时渲染组件。什么对性能更好?如果组件的道具和状态稍后更新,是否最好让组件存在,但隐藏在虚拟DOM中? 或者这个:
我想创建一个有条件添加成员的对象。简单的方法是: 现在,我想写一段更地道的代码。我正在尝试: 但是现在,