我对 React Native 和 JavaScript 都很陌生。尤其是JSX等,我才刚刚开始学习。我有一个按钮,按下该按钮应该执行以下操作:
const uploadImage = async (uri: string) => {
const pathToFile = uri;
try {
const response = await reference.putFile(pathToFile);
const data = response.state;
console.log(data);
}
catch (error) {
console.log(error);
}
const imageUrl = await reference.getDownloadURL();
setImageUrl(imageUrl);
}
但是我收到错误:参数“uri”和“事件”的类型不兼容。
我想这是因为使用了await关键字。但我不确定如何以不妨碍等待(对 Firebase 工作很重要)的方式编写上述函数,但按下按钮时,它会调用此函数。
也许一种解决方案是拆分函数,但它仍然会产生此错误,因为仍将使用等待。
编辑: 我使用这个来调用这个函数:
<Button title="Upload Invoice" onPress={uploadImage(uri)} />
URI 是使用 launchCamera 或 launchImageLibrary 所选图像的 uri。
尝试像这样调用函数:
<Button title="Upload Invoice" onPress={()=>uploadImage(uri)} />