我正在使用Meteor和ReactJS开发应用程序。我正在使用react-grid-layout组件来创建项目网格。
问题是需要手动指定每个元素的位置。在我的应用程序中,我基于流星集合生成网格项目,我可能不知道集合中有多少项目。
示例
import React from "react";
import Item from "/ui/components/workspace/item.jsx";
import ReactGridLayout from 'react-grid-layout';
export default class WorkspaceGrid extends React.Component {
componentDidMount() {
}
render() {
let testCollection = [1,2,3,4,5,6,7,8,9,10]
return (
<ReactGridLayout isResizable={false} className="layout" cols={4} width={1200}>
{testCollection.map((item, x) =>
<Item key={x} _grid={{x: ?, y: ?, w: 1, h: 2}} />
)}
</ReactGridLayout>
)
}
}
在上面的示例中,网格每行应该有4列,但是如何指定x
和y
值,以便在testCollection
项目1-4中排成行1,5,8位于第2行,9-10位于第3行,依此类推,因为该系列中有许多项目。
非常感谢,非常感谢。
答案 0 :(得分:2)
默认情况下,react-grid-layout将参数"babel": "^6.5.2"
设置为verticalCompact
,这意味着如果多个项目获得相同的true
值,则它将垂直压缩。我想你可以写:
y
几个项目将获得相同的
<Item key={x} _grid={{x: x%4, y: 0, w: 1, h: 2}} />
值,但这对于react-grid-layout来说不是问题。 x值将从0变为3。