我希望你能帮助我。我已经尝试了很长一段时间来动态地使用flexbox-grid创建一个网格。我现在想要实现的是每3个元素创建一个新行。我一直在玩meteor simple-todos示例,我正在尝试扩展它以了解更多信息。
到目前为止,我在代码方面的目标是:
renderTasks() {
let filteredTasks = this.props.tasks;
return filteredTasks.map((task, i) => {
const currentUserId = this.props.currentUser && this.props.currentUser._id;
const showPrivateButton = task.owner === currentUserId;
if (i % 3 == 0){
console.log("row " + i);
return (
<Row>
<Task
key={task._id}
task={task}
showPrivateButton={showPrivateButton}
/>
</Row>
);
}else{
console.log("col " +i );
return (
<Task
key={task._id}
task={task}
showPrivateButton={showPrivateButton}
/>
);
}
});
}
这里的问题是我不能打开行,必须立即关闭它。我认为这不应该难以实现,但我google了相当多,找不到任何东西:(
答案 0 :(得分:0)
这就是我要做的。首先,我会根据应放置的行对任务进行分组。然后我会有一个数组,或多或少像这样:
while condition=true do
begin
TabSheet := TTabSheet.Create(PageControl[i]);
TabSheet.Caption := '';
//TabSheet.Name:='tabesheet_'+IntToStr(i);
TabSheet.PageControl := PageControl[i];
TabSheet.PageControl.ActivePageIndex:=0;
{I also create a frame for each TabSheet. In every frame there is the ComboBox that I want to access}
frame := Tfrm1.Create(TabSheet);
//frame.Name:='frame_'+IntToStr(i);
frame.Parent:=TabSheet;
end;
然后我将映射此数组以呈现每一行。最后,为了渲染一行,我会映射该行的任务并渲染每个任务。
这样的事情:
cb := Tfrm1(PageControl[i].Pages[j].Controls[0]).comboBoxAccount;