CKEditor内容上传Firestore报TypeError: text is not a function如何解决
错误原因
你在提交处理函数中错误调用了状态变量:
- 你通过
useState定义状态时,返回的第一个参数text是存储富文本内容的普通变量,第二个参数setText才是用来更新状态的方法 - 你在提交完成后写了
text(""),把状态变量当成函数调用,直接触发了类型错误
修复方案
- 把
text("")替换为setText("") - 可选优化:Firestore的
set方法是异步接口,建议增加async/await处理异步逻辑,避免保存失败时还错误清空编辑器内容
修复后的handleSubmit代码:
const handleSubmit = async (e) => { e.preventDefault(); try { const userRef = firestore.collection("announcement").doc(); // 等待写入操作完成再执行后续逻辑 await userRef.set({ text, }); // 调用状态更新方法清空内容 setText(""); console.log(" saved"); } catch (err) { console.log(err); } };
内容的提问来源于stack exchange,提问作者JS3
相关产品推荐
相关产品推荐

