我正在尝试使用React将一个小的(5000行)文本文件加载到dataTable上。使用ajax和PHP从远程服务器加载文本文件。当我试图立即加载它时,它仍然没有#34;表中没有可用的数据"错误。经过多次搜索,有人建议在dataTable上使用setTimeout,它在最初工作,但后来得到了错误,如标题所示。
用于设置数据表超时的代码块:
window.setTimeout(() => {
$(document).ready( function () {
$('.table').DataTable( {
"lengthMenu": [ [10, 50, 100, -1], [10, 50, 100, "All"] ],
})
})
}, 1000);
此外,我还有3秒的超时时间来检查服务器中文本文件的任何更改,也使用ajax。
componentDidMount() {
$.ajax({
url: 'http://localhost/phpRoot/readFile.php',
type: "GET",
dataType: "text",
success: function(data) {
this.setState({ text: data });
}.bind(this),
error: function(xhr, status, err) {
console.log('error');
}.bind(this)
});
}
checkContent () {
var tempText;
$.ajax({
url: "http://localhost/phpRoot/readFile.php",
type: "GET",
dataType: "text",
success: function(data) {
this.setState({ tempText: data });
}.bind(this),
error: function(xhr, status, err) {
console.log('error');
}.bind(this)
});
if(this.state.tempText != this.state.text){
this.setState({ text: this.state.tempText });
}
}
window.setTimeout(() => {
this.checkContent();
}, 3100);
这是我桌子的主体:
<tbody>
{finalSymbolArray.map((symbol, index) => {
return(
<tr key={symbol.id}>
<td>{symbol.id}</td>
<td>{symbol.name}</td>
<td>{symbol.version}</td>
<td>{symbol.comment}</td>
<button
onClick={() =>this.openModal(index, symbolArrayTemp)}>
Tag
</button>
</tr>
);
})}
</tbody>
有谁知道如何解决错误?