我有一个异步函数async a(),该函数必须在function之前运行componentDidMount()。
那么如何在构造函数中调用异步函数呢?因为构造函数要在componentDidMount函数之前运行。
我需要确保async a()首先在构造函数中完成操作,然后执行componentDidMount中的所有方法。
我想做以下事情,并记住它实际上对我有用。我的问题是怎么回事,可以async usrs()从非异步componentDidMount()函数中调用函数吗?如果不可能,为什么打电话给我this.usrs(usrs)而不是对我有用await this.usrs(usrs);
let outState = {};
class A extends Component{
componentDidMount(){
this.usrs(usrs);
}
getData(usr){
return db.collection('a/'+usr+'/bb').get().then(snap=>{
for(i = snap.docs.length-1; i>=0; i--){
outState[usr] = [...outState[usr], snap.docs[i].data()];
if(i === 0) return outState;
}
return false;
});
}
async usrs(usrs){
let os = {}, data = {};
for(i = usrs.length-1; i>=0; i--){
os = await this.getData(usrs[i]);
if(os){
data = { ...data, ...os };
if (i === 0) {
this.setState({ ...this.state, ...data });
}
}
} …Run Code Online (Sandbox Code Playgroud) 有没有办法为flutter列表视图中的每个项目提供自定义ID?
我需要通过其 id 或键更新 flutter listview 中的单个项目。
为什么我想通过Id更新?
因为我想更新特定项目而不重建整个列表视图项目,这可能会提高我的应用程序的性能。