可能未处理的承诺拒绝(ID:0):类型错误:_ref2不是函数。(在“_ref2(storage,“image.jpg”)“中,”_ref2“未定义)
我有时会遇到同样的问题,但未定义_ref而不是_ref2
我试着把ref、getStorage和uploadBytes的导入搞得一团糟,我可以看到我的导入中的ref值从“firebase/storage”导入{ getStorage,ref,uploadBytes };是模糊的,但是getStorage和uploadBytes读取。
下面是我的完整代码:
import { getStorage, ref, uploadBytes } from "firebase/storage";
import React, {useState} from 'react'
const [image, setImage] = useState(null);
const [uploading, setUploading] = useState(false);
const pickImage = async () => {
let result = await ImagePicker.launchImageLibraryAsync({
mediaTypes: ImagePicker.MediaTypeOptions.All
allowsEditing: true,
aspect: [9, 16],
quality: 1,
});
console.log(result);
if (!result.canceled) {
setImage(result.assets[0].uri);
const storage = getStorage();
const ref = ref(storage, "image.jpg");
const img = await fetch(result.assets[0].uri);
const bytes = await img.blob();
await uploadBytes(ref, bytes);
}
};
另外,URI只是被取消,现在我必须使用result.assets[0].uri
显然。
有人能帮帮我吗?先谢了。
1条答案
按热度按时间yacmzcpb1#
将此作为社区wiki发布以帮助其他社区成员。
正如@Dharmaraj所说,不要将变量命名为与任何函数名称相同的名称。
如果函数名和变量名相同,则Javascript引擎将忽略该变量。使用变量A可以创建新变量。声明实际上被提升到当前作用域的开头(在函数定义之前)。之后,同名函数将用完该名称。
试试看: