Javascript Can';t在文本区域中键入文本时';s值属性已设置-反应
我正在为一个大学项目写一个日记应用程序,请感谢我不能上传太多代码,因为学校有严格的剽窃规则和运行检查等 我将用以下几点来解释这个问题:Javascript Can';t在文本区域中键入文本时';s值属性已设置-反应,javascript,reactjs,dom,textarea,Javascript,Reactjs,Dom,Textarea,我正在为一个大学项目写一个日记应用程序,请感谢我不能上传太多代码,因为学校有严格的剽窃规则和运行检查等 我将用以下几点来解释这个问题: 用户在文本区域中输入日记条目 如果他们单击“保存”按钮或文本区域之外的任何位置,文本将被保存 文本通过触发redux操作保存,该操作向更新日志的节点发出axios请求 reduxreducer设置日记账的新状态,现在我可以使用journal.data.entries 我现在有了一个displayEntry函数,它检查条目的日期,并将条目内容加载到日记账中的匹配
- 用户在文本区域中输入日记条目
- 如果他们单击“保存”按钮或文本区域之外的任何位置,文本将被保存
- 文本通过触发
操作保存,该操作向更新日志的redux
节点发出
请求axios
reducer设置日记账的新状态,现在我可以使用redux
journal.data.entries
- 我现在有了一个
函数,它检查条目的日期,并将条目内容加载到日记账中的匹配日期中。这很好,正确的数据在正确的日期加载displayEntry
- 问题-我正在将textarea
属性设置为此函数的返回值,即值
(如果存在)或条目.内容
(如果不存在)。当在文本区域设置了”
时,我无法再在其中键入内容来更新当天的内容或在另一天添加新条目。删除value属性允许我再次键入它value
displayEntry() {
const { todaysDate } = this.state;
const { journal } = this.props;
if (journal) {
for (let entry of journal.data.entries) {
if (entry.date === todaysDate) {
return entry.content;
}
}
return "";
}
return "";
}
谢谢你的帮助。如果需要更多信息,我会尽力提供在没有看到完整示例的情况下,无法对您的特定用例进行评论,但是当您在react中的输入上设置
值
道具时,它将成为一个受控组件。您需要连接到文本区域的onChange
处理程序,以捕获用户输入并将其存储在中间状态或其他状态,然后将其传递回值
道具。您刚刚帮助我准确地了解了我做错了什么。我使用onChange处理输入并将值存储在state中,然后尝试使用函数的返回值覆盖它。当我打字时,这显然会引起冲突。非常感谢,我会回去看看如何修复它!