gpt4 book ai didi

javascript - 数据表函数不适用于 Reactjs

转载 作者:行者123 更新时间:2023-12-02 23:28:02 26 4
gpt4 key购买 nike

我正在使用数据表库轻松绘制表格。

我通过 Fetch API 获得了数据并渲染到表中,效果很好。但我不知道为什么 DataTable 功能喜欢排序、搜索、显示选项。

enter image description here

如您所见,从 API 获取数据并渲染为 HTML 效果很好,但是当我单击排序或搜索功能时,它会变成这样。

enter image description here

另外一个功能,比如每隔 10 秒从 API 获取一次数据并渲染到表格,效果也很好。

初始状态似乎存在一些问题。

import React, { Component } from 'react';
import './PostContainer.css';

class PostContainer extends Component {
constructor(props) {
super(props);
this.state = {
tableData: {
status: '0000',
data: {
loading: { sell_price: 'loading', volume_7day: 'loading' },
},
},
};
}
async componentDidMount() {
this.getData();
this.interval = setInterval(() => {
this.getData();
}, 10000);
}

getData() {
fetch('https://api.bithumb.com/public/ticker/all')
.then(res => {
const data = res.json();
return data;
})
.then(res => {
this.setState({
tableData: res,
});
})
.catch(error => {
console.error(error);
});
}

componentWillUnmount() {
clearInterval(this.interval);
}

render() {
let data = this.state.tableData;
let chart = [];
console.log(data);
if (data.status === '0000') {
delete data.data['date'];
for (let [key, value] of Object.entries(data.data)) {
chart.push(
<tr key={key}>
<td>{key}</td>
<td>{value.sell_price}</td>
<td>{value.volume_7day}</td>
</tr>
);
}
} else if (
data.status === '5500' ||
data.status === '5600' ||
data.status === '5900'
) {
this.setState({
tableData: {
data: {
ERROR: {
sell_price: 'ERROR with API',
volume_7day: 'ERROR with API',
},
},
},
});
}
return (
<div className="Post">
<table id="table" className="table table-striped table-bordered">
<thead>
<tr>
<th>Coin Name</th>
<th>Current Price</th>
<th>Volume</th>
</tr>
</thead>
<tbody>{chart}</tbody>
</table>
</div>
);
}
}

export default PostContainer;

可以访问DEMO直接地。我上传到了 Github Pages。

最佳答案

我可以想到要查找的 2 个问题

一。

如果您在屏幕截图中看到没有分页。

当我尝试在开发者控制台打开的情况下加载演示时。

它工作正常,您将看到分页,一次显示 10 条记录。

检查 index.jsDatatable 初始化代码的代码

$('#table').DataTable({
order: [[1, 'desc']],
});

确保在 HTML 中加载数据后调用上述代码

b.

排序时您的状态值不会更新为实际值

 tableData: {
status: "0000",
data: {
loading: {
sell_price: "loading",
volume_7day: "loading"
}
}
}

关于javascript - 数据表函数不适用于 Reactjs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56642648/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com