javascript - 在功能运行时更改屏幕然后更改回来
问题描述
当按下提交按钮时,我正在尝试更改屏幕。该页面本质上只是一个微调器页面。我希望它在数据提交到数据库时更改为页面,然后在数据库内容完成后更改回来。
我可以让屏幕改变,但不能让它变回来。好吧,我做过一次,但是一旦我开始向函数添加代码,它就完全停止工作了。
我有一个包含表格组件的主页
class Home extends Component {
constructor() {
super()
this.state = {
data: [],
loading: false
};
}
handleSpinner() {
this.setState({ loading: !this.state.loading })
}
handleCancel() {
if (confirm('Are you sure you want to clear the table?')) {
this.setState({ data: [] })
} else {
return
}
}
render() {
return (
this.state.loading ? <WaitingSpinner /> :
<div>
<MainTable data={this.state.data} handleCancel={this.handleCancel} handleSpinner={this.handleSpinner} />
</div>
);
}
该表有一个调用提交处理程序的提交按钮。
handleSubmit() {
this.props.handleSpinner()
this.writeToDatabase(this.props.data)
this.props.handleSpinner()
}
async writeToDatabase(data) {
await data.map(test => {
console.log('DATA ', test)
axios.post(`database stuff')
.then(function (response) { console.log(response) }).catch(function (error) { console.log('Err ', error) })
})
}
我的目标是更改微调器,运行数据库功能,一旦完成,它就会变回来。
此时它会变为微调器屏幕,但不会变回主表格页面。我猜这与状态实际更新的时间有关,但我对此知之甚少,无法追踪正在发生的事情。
解决方案
推荐阅读
- java - 处理 API 请求时出现 MismatchedInputException
- c# - C# - 如何传递列表
以委托为参数 - c++ - 是否可以在 C++ 中递归匹配整数模板参数?
- javascript - 我使用了 iframe,然后在使用 url 时出现了一些问题
- reactjs - 为什么将代码包装到“useEffect”中而没有第二个参数并且无需清理?
- sql - 如果另一个表中存在值,如何更新我的列?
- reporting-services - SSRS - 根据计算字段计算百分比
- pointers - 在结构字段中使用指针的区别
- javascript - 修改Chart.JS中散点图的信息框
- ios - 如何从 Google Translate Api 或云翻译 api 下载语言包以供离线使用?