Griddle поддерживает subgrids. У меня есть пользовательский компонент (используемый для выбора строки) в одном из полей, которое изменяет состояние. Это изменение состояния вызывает повторную визуализацию, которая разрушает подкризис. Тем не менее, я бы хотел, чтобы он оставался открытым.Griddle Subgrids Collapse on Render
Эта же проблема зафиксирована в этом Github issue, включая этот example (спасибо @denzelby от Github), в котором фильтрация сворачивает субгриды.
Примечание в коде из скрипки, как состояние обновляется onCountClick
(нажатие на кнопку «вклы»), в результате чего повторно вынести:
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.
Спасибо за полезные предложения. Я попытался # 1, но без успеха. Кажется, он воссоздает весь компонент. Griddle 1.0 работает, поэтому, возможно, мы увидим лучший или более собственный подход. –