【发布时间】:2020-01-03 22:35:27
【问题描述】:
当我点击导航按钮时,表格数据会加载,但第二次点击表格数据不会加载,但每次点击 react js 时都会加载数据
我已将代码放入componentdidMount() {} 以在每次加载时加载它。我做了一个异步函数来加载表并设置标题。
{this.state.numofbugs.map((data)=> {
return (
<li key={data}>
<Link to={'/applogs/' + data}
className="waves-effect" className={this.props.location.pathname === '/applogs/' + data ? 'active': ''}>
<span className="font-size waves-effect" >{data}</span>
</Link>
</li>
)
})}
在它呈现的文件中
componentDidMount() {
if (this.props.location.pathname.includes('app_')) {
this.showTable(this.props.location.pathname.split('/')[2]);
}
}
async showTable(col_name) {
// empty data
this.state.logtable = []
let conf = { headers: { Authorization: 'Bearer ' + localStorage.getItem('session') }}
Axios.get(links.baseURL + 'sample?collection=' + col_name, conf).then((response) => {
// get headers
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()
});
this.setState({'logtable': this.state.logtable});
});
}
我希望在表格中的每个按钮单击时都会在表格中获取数据,但是在单击表格中折叠数据 laods 的选项卡后,第二次将数据加载到标记而不是表格中
【问题讨论】:
-
为什么
showTable的开头有this.state.logtable = []?不应该在构造函数中定义吗?然后你定义this.state.tableHeaders =我不明白你对状态使用的看法。您应该只使用 setState 来改变状态,而不是使用this.state.sometinhg = something -
showTable(col_name) 这个函数只渲染一次而不是每次,我怎样才能让它每次都渲染。
-
您好 Ansh,请阅读此内容 - stackoverflow.com/help/someone-answers,然后尝试关闭问题。
-
感谢这些解决方案的贡献帮助了我很多,并寻求了大量的知识
标签: javascript reactjs components axios rendering