javascript - 无法从存储在 Firebase 中的字符串中删除最后一个字符
问题描述
我正在使用 firebase 实时更新我的字符串值。例如,当我Google
在Title
输入框中输入内容时,firebase 会将其存储为:
现在,当我尝试通过删除输入字段中的所有字符来更新输入值时,除了第一个字符之外,所有字符都将被删除G
好像firebase不会让我删除所有字符然后让我存储和空字符串。任何想法为什么?
// set title
useEffect(() => {
if (linkTitleEdit) {
db.collection("users").doc(user?.uid).collection("links").doc(id).update({
linkTitle: linkTitleEdit,
});
}
}, [linkTitleEdit]);
这是我呈现的输入:
<div className="link__title">
<input
type="text"
placeholder={
linkTitle == "Enter Title" ? linkTitle : "Enter Title"
}
onChange={(e) => setLinkTitleEdit(e.target.value)}
value={linkTitle == "Enter Title" ? linkTitleEdit : linkTitle}
/>
</div>
解决方案
我怀疑它落后于一个更改,因此何时删除它显示“G”,因为它是您删除的最后一个字符。与其使用 useEffect 和 linkTitleEdit 作为依赖项,不如尝试在您的输入中直接更新 firestore onChange。去掉使用效果代码,试试下面这个:
<div className="link__title">
<input
type="text"
placeholder={
linkTitle == "Enter Title" ? linkTitle : "Enter Title"
}
onChange={(e) =>
db.collection("users").doc(user?.uid).collection("links").doc(id).update({
linkTitle: e.target.value,
});
}
value={linkTitle == "Enter Title" ? linkTitleEdit : linkTitle}
/>
</div>
我必须查看更多上下文才能确定,但我怀疑这会解决它。
推荐阅读
- hibernate - 检索 ManyToOne 关系但实体 ID 存在时出现 EntityNotFoundException
- r - 如何创建自定义模型(在插入符号中使用循环/子模型技巧)
- java - 在 Spring 应用程序中将产品链接到订单的最佳方式是什么?
- angular - 语音到文本与特定单词 ionic v3 匹配
- css - 我正在尝试使用 flexbox 导航到中心。
- nginx - 反向代理下仅允许 Nginx 上的单个特定 IP 地址
- ios - 将可可豆荚安装到新的自定义 iOS 工作区中
- python-3.x - Python代码中的运行时错误,用于使用函数反转数字
- caching - Wildfly 10 - 即使将新证书导入密钥库,旧证书也会显示在网站上
- python - 推荐 pytest/allure 中缺少环境支持的解决方法?