firebase-storage - 将获取的数据存储到状态组件中
问题描述
提交函数有另一个名为 handleImageAdd() 的函数,它将从表单收集的图像推送到 Firebase 存储。
const handleSubmit = async (e) => {
setSubmitLoading(true)
e.preventDefault()
console.log("submitting form...")
await handleImageAdd()
console.log("form submitted!")
setSubmitLoading(false)
}
这是 handleImageAdd() 函数,当图像被推送到存储时,我正在获取它的下载 url 并将其存储到反应状态。但是 url 不会在第一次调用时存储到状态中,它会在第二次调用时开始存储 url。为什么会这样?
const handleImageAdd = async(e) => {
console.log("adding image...")
const storageRef = storage.ref('images')
const fileRef = storageRef.child(image.name)
await fileRef.put(image)
const url = await fileRef.getDownloadURL()
console.log(url)
setImageUrl(url)
console.log("imageurl - ",imageUrl)
console.log("image added!")
}
解决方案
推荐阅读
- android - Flutter安装更新的apk下载
- kubernetes - Helm vs Batch Kubernetes 部署
- twilio - Twilio Stream 在调用更新迭代后停止工作
- javascript - Node.js ejs - 如何在 ejs 表达式中使用变量?
- android - Android view.animate() 只是跳转到最终位置而不是动画
- python-3.x - 为什么在 Python 中的 LRU 缓存问题中散列失败
- javascript - 如何在我的 React 组件中使用脚本标签呈现 Html?
- html - Bulma Override 变量
- scala - 通过 RestClusterClient 发送作业时出现 ClassNotFoundException
- css - 修复 IE/Edge CSS 剪辑路径