Griddle支持子网格。我在更改状态的字段之一中有一个自定义组件(用于行选择)。此状态更改会导致重新渲染,从而折叠子网格。但是,我希望它保持开放。
这个 Github issue记录了同样的问题,包括这个例子(感谢 Github 的 @denzelby),其中过滤折叠了子网格。
请注意小提琴中的代码如何更新状态onCountClick
(单击“inc”按钮),从而导致重新渲染:
var GridAndCounter = React.createClass({
render: function() {
var columnNames = ['id', 'age', 'name', 'company', 'state', 'country', 'favoriteNumber'];
var rowMetadata = {key: "id"};
return <div><Counter count={this.state.count} onClick={this.onCountClick} /><Griddle results={fakeData} rowMetadata={rowMetadata} columnNames={columnNames} resultsPerPage={100} showFilter={true} /></div>
},
onCountClick: function() {
React.addons.Perf.start();
this.setState({count: this.state.count + 1 });
setTimeout(function() {
React.addons.Perf.stop();
React.addons.Perf.printDOM();
}, 500);
},
getInitialState: function() {
return { count: 0 };
}
})
此状态更新导致重新渲染,将所有内容设置为折叠。如何在重新渲染时保持一切扩展?我也许可以自己跟踪哪些是扩展的,但是我需要一种编程方式来扩展行,这是我在 Griddle 中没有发现的。