我正在使用void MainWidget::startRequest () {
Request *req = new Request;
req->Connector();
}
作为React项目,我想知道在这种情况下axios
承诺的使用是否正确。
基本上,我使用then
在组件呈现时从数据库中获取数据。
axios
我观察到的是组件的状态被设置两次,一次是在渲染发生时,class Participants extends React.Component{
constructor(props){
super(props);
this.state = {
databaseUsers: [],
}
this.getUsers = this.getUsers.bind(this);
}
getUsers(){
var users = axios.get('/users/get-users').then((response) => {
this.setState({databaseUsers: response.data});
});
}
componentWillMount(){
this.getUsers();
}
render(){
console.log(this.state.databaseUsers);
return(** html tree **);
}
}
承诺触发,第二次是从承诺完成从数据库中获取数据和集合then
如何更好地控制这个?就像实际上等待数据库上的数据一样,然后渲染?
欢迎任何提示。
答案 0 :(得分:1)
还有其他方法可以实现您对多个组件所做的操作。 但是让我们坚持这个例子。
渲染两次没有错,因为你不想等待响应然后显示输出。
您可以拥有$scope.connector_form = "test;
标记,以便显示“加载”代码,并在加载时显示输出。
或者您可以拥有1个管理工作的父组件:
loading