react-virtualized
Version:
React components for efficiently rendering large, scrollable lists and tabular data
63 lines (58 loc) • 1.4 kB
JavaScript
var REACT_VIRTUALIZED_BANNER = 'https://cloud.githubusercontent.com/assets/29597/11737732/0ca1e55e-9f91-11e5-97f3-098f2f8ed866.png'
function getColumnWidth (columnIndex) {
switch (columnIndex % 3) {
case 0:
return 65
case 1:
return 65
case 2:
return 100
}
}
function renderCell (params) {
var key = `c:${params.columnIndex}, r:${params.rowIndex}`
switch (params.columnIndex % 3) {
case 0:
return React.DOM.input({
className: 'input',
defaultValue: key,
onChange: function () {}
})
case 1:
return React.DOM.button({
className: 'button'
}, key)
case 2:
return React.DOM.img({
className: 'image',
src: REACT_VIRTUALIZED_BANNER
})
}
}
var App = React.createClass({
render: function() {
return React.createElement(
ReactVirtualized.AutoSizer,
null,
function (params) {
return React.createElement(
ReactVirtualized.Grid,
{
columnsCount: 1000,
columnWidth: getColumnWidth,
height: params.height,
overscanRowsCount: 0,
renderCell: renderCell,
rowHeight: 30,
rowsCount: 1000,
width: params.width
}
)
}
)
}
})
ReactDOM.render(
React.createElement(App),
document.querySelector('#mount')
)