1 回答

TA貢獻1911條經驗 獲得超7個贊
首先,你不需要像這樣清空你的狀態,
this.state.logtable = []
如果你想用新的狀態替換現有的狀態,你可以簡單地用新數據設置狀態。
另一個問題是,你直接改變你的 state,像這樣
this.state.tableHeaders = [
Object.keys(response.data.result[0])[0],
Object.keys(response.data.result[0])[1],
Object.keys(response.data.result[0])[2],
Object.keys(response.data.result[0])[3],
]
和這個
Object.keys(response.data.result).map((key) => {
this.state.logtable[key] = response.data.result[key];
this.state.logtable[key]['key'] = key.toString()
});
您應該使用局部變量來創建臨時數組,然后需要將它們設置為您的狀態,例如,
async showTable(col_name) {
let conf = { headers: { Authorization: 'Bearer ' + localStorage.getItem('session') }}
Axios.get(links.baseURL + 'sample?collection=' + col_name, conf).then((response) => {
// get headers
let tableHeaders = Object.keys(response.data.result[0]).map((key,index) => index <=3 && key.toString())
let logtable = Object.keys(response.data.result).map((key) => ({
logtable[key] : response.data.result[key];
logtable[key]['key'] : key.toString()
}));
this.setState({logtable, tableHeaders});
});
}
添加回答
舉報