constructor(props){
super(props);
this.state = {
data: [],
sortState: {
'fields.AgentHostname': SortOrder.ASC,
'fields.ModuleName': SortOrder.DESC,
},
};
this.onColumnSort = this.onColumnSort.bind(this);
}
onColumnSort = ({ key, order }) => {
const { data, sortState } = this.state;
console.log(sortState, data);
this.setState({
// clear the sort state if the previous order is desc
sortState: {
...sortState,
[key]: sortState[key] === SortOrder.DESC ? null : order,
},
data: data.reverse(),
})
};
render() {
return (
<div>
<Container>
<AutoResizer>
{({ width, height }) => (
<BaseTable
data={this.props.data}
width={width}
height={height}
fixed
sortState={this.state.sortState}
onColumnSort={this.onColumnSort}>
<Column key="fields.AgentHostname" dataKey="fields.AgentHostname" width={width/3} title="Hostname" sortable={true}/>
<Column key="fields.ModuleName" dataKey="fields.ModuleName" width={width/3} title="Module" sortable={true}/>
</BaseTable>
)}
</AutoResizer>
</Container>
</div>
)
}
}
В таком виде трудно воспринимать, но на сколько я вижу вы обращаетесь к {this.props.data} в рендере, и у вас есть еще одна data в стейте, может вам нужно тогда писать this.state.data?
Обсуждают сегодня