我目前正在尝试将我自己的列选择器集成到 flask-bootstrap-table 3.0-beta2 包中。我在问题部分的 github 上找到了一个示例,如下所示:
export default class ColumnHideTable extends React.Component {
constructor(props) {
super(props);
this.state = { showModal: false, hiddenColumns: {} };
}
changeColumn(id) {
return () => {
this.setState({ hiddenColumns: Object.assign(this.state.hiddenColumns, { id: !this.state.hiddenColumns.id }) });
};
}
}
但是,这只会显示/隐藏 ID 列,并且其他值的复选框被选中的值卡住,单击时,仅选中/取消选中并隐藏/显示 id 列
我正在尝试使用计算变量制定解决方案,并且我已经制作了以下内容:
setColumnState(column) {
let columns = Object.keys(cyhyData[0])
var o = {}
for(let i=0; i < columns.length;i++) {
if(column == columns[i]) {
Object.defineProperty(o, column, {
value: !this.state.hiddenColumns.column,
enumerable: true
})
break
}
}
return o
}
changeColumn(column) {
return () => {
this.setState({ hiddenColumns: Object.assign(this.state.hiddenColumns, this.setColumnState(column)) });
console.log(this.state.hiddenColumns)
};
}
这正确地隐藏了列,但显然不会取消隐藏它们。如何切换!this.state.hiddenColumns.givenCol?
是否有我没有看到的更清洁的解决方案?