У меня есть компонент на странице, на котором я хочу получить последнее состояние страницы, обновляя компонент каждые 30 секунд,
, например, эти данные поступают с сервера, а идентификатор и имена постоянно добавляются и удаляются. Вместо того, чтобы обновлять страницу вручную каждый раз, мы можем делать refre sh компонента Datatable каждые 30 se c, чтобы гарантировать, что у нас есть самые свежие данные.
Как я могу это сделать. Правильно ли setInterval или ShouldComponentUpdate поможет?
Изменить: нужно просто отредактировать таблицу, а не весь компонент
export class DataTable extends React.Component {
constructor(props) {
super(props);
}
componentWillMount() {
this.context.store.dispatch(getData());
}
componentDidMount(){
this.updateTimer = setInterval(() => this.context.store.dispatch(getData()), 30000);
}
componentWillUnmount(){
clearInterval(this.updateTimer);
}
_getDtableProps() {
const arr = this.props.getData.data;
const data = arr.map((d, i) => {
return {
'id': this.formatPathId(d['id']),
'name': this.formatTime(d['name'])
}
})
return {
data,
dtOptions: {
order: [2, "desc"]
},
columns: [
{
data: 'id',
title: 'Id',
searchable: true
},
{
data: 'name',
title: 'Name',
searchable: true
}
]
}
}
render() {
let tableProps = this._getDtableProps();
return (
<div className={style.container}>
<Table {...tableProps}/>
</div>
);
}
}