我遇到了两个条件:内部流星调用获取结果并添加数据,但是querySelector抛出错误,而外部流调用则获取结果,但是它在流星调用之前执行,从而使结果状态为空,任何解决方案都无效? -流星1.8反应16.8
onSubmit(e) {
e.preventDefault();
Meteor.call('Add data', name,surname,
adharcard,addess,Mnumber,tags,product,
(error, result) => {
if(error){
console.log("Add data error ", error);
} else {
console.log("Add data res ", result);
this.setState({kUserrId:result});
//below line gives me error
//TypeError: Cannot read property 'querySelector' of null
console.log("fileupload24e",e.target.querySelector('#fileinput').files[0]);
//add result to db
}
});
// -------or---------
//wait for meteor call to complete and some how get result from meteor call
console.log("fileupload24e",e.target.querySelector('#fileinput').files[0]); // this work
// now add data result to db
console.log('kUserrId',this.state.kUserrId);// null
}
答案 0 :(得分:1)
您需要使用event.persist()来使事件在回调中被调用时不为null或未定义。
onSubmit(e) {
e.persist();
e.preventDefault();
Meteor.call('Add data', name,surname,
adharcard,addess,Mnumber,tags,product,
(error, result) => {
if(error){
console.log("Add data error ", error);
} else {
console.log("Add data res ", result);
this.setState({ kUserrId:result });
console.log("fileupload24e", e.target.querySelector('#fileinput').files[0]);
}
}
);
}