現在、独自の列セレクターをフラスコ ブートストラップ テーブル 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 を切り替えるにはどうすればよいですか?
私が見ていないよりクリーンなソリューションはありますか?