记录一下开发中遇到的空定义问题
//组件ref
private refImagesSelectView = React.createRef<ImageSelectViewRef>();
在调用此方法时出现Undefined
//获取组件传回的值
checkAndPost() {
let ok = true;if (ok && (this.eDetail.orderId ?? '') !== '') {
console.log(this.eDetail.orderId);
ok = true;
} else {
UI.showToast('请输入');
ok = false;
}}
端点后发现ref对象在获取图片时存在current,但在点击提交时得到的ref.current为undefine
renderImageView() {
console.log(this.eDetail.urlArr);
return (
<StevedoreImagesSelectView
ref={this.refImagesSelectView}
key={'imagesLoadPay'}
style={{marginTop: 5}}
orderId={this.eDetail.orderId}
imgs={this.eStevedoreDetail.urlArr}
title={'照片'}
toast={`最多上传5张`}
warning={''}
showReadToastIcon={true}
waterMarkFlag={'1'}
takePhoto={false}
edit={true}
max={5}
/>
);
}
原因:数据查询为异步,需要事件获取刷新后的组件ref
解决:设置计时器,代码如下
post = () => {
setTimeout(() => {
this.checkAndPost();
}, 100);
};
如有其他解决方法,欢迎讨论