Javascript Can';t从firebase中存储的字符串中删除最后一个字符
我正在用firebase实时更新我的字符串值。例如,当我在我的Javascript Can';t从firebase中存储的字符串中删除最后一个字符,javascript,reactjs,firebase,google-cloud-firestore,Javascript,Reactjs,Firebase,Google Cloud Firestore,我正在用firebase实时更新我的字符串值。例如,当我在我的Title输入框中键入Google时,firebase将其存储为: 现在,当我试图通过删除输入字段中的所有字符来更新输入值时,除了第一个字符G 似乎firebase不允许我删除所有字符,然后让我存储和空字符串。你知道为什么吗 //设置标题 useffect(()=>{ 如果(链接标题编辑){ db.collection(“用户”).doc(用户?.uid)。collection(“链接”).doc(id)。更新({ linkTitl
Title
输入框中键入Google
时,firebase将其存储为:
现在,当我试图通过删除输入字段中的所有字符来更新输入值时,除了第一个字符G
似乎firebase不允许我删除所有字符,然后让我存储和空字符串。你知道为什么吗
//设置标题
useffect(()=>{
如果(链接标题编辑){
db.collection(“用户”).doc(用户?.uid)。collection(“链接”).doc(id)。更新({
linkTitle:linkTitleEdit,
});
}
},[linkTitleEdit]);
以下是我的输入,用于呈现:
setLinkTitleEdit(e.target.value)}
值={linkTitle==“输入标题”?linkTitleEdit:linkTitle}
/>
我怀疑它落后于一个更改,因此当您删除它时,它会显示“G”,因为它是您删除的最后一个字符。不要使用useEffect和linkTitleEdit作为依赖项,而是尝试在输入发生更改时直接更新firestore。请删除使用效果代码,然后尝试使用以下代码:
<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>
db.collection(“用户”).doc(用户?.uid)。collection(“链接”).doc(id)。更新({
链接标题:e.target.value,
});
}
值={linkTitle==“输入标题”?linkTitleEdit:linkTitle}
/>
我必须查看更多上下文才能确定,但我怀疑这会解决问题。嗨,大卫!这很有道理!但是,我认为格式化有点不正确,因为我无法运行该函数。我删除了
setLinkTitleEdit(e.target.value)
,它成功了。非常感谢你,伙计!