Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Can';t从firebase中存储的字符串中删除最后一个字符_Javascript_Reactjs_Firebase_Google Cloud Firestore - Fatal编程技术网

Javascript Can';t从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

我正在用firebase实时更新我的字符串值。例如,当我在我的
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)
,它成功了。非常感谢你,伙计!