javascript - 单击某些按钮后,“this”变得未定义(ReactJS)
问题描述
因此,单击单选按钮后,我将尝试保存所选选项。在我按下以下代码中的一个按钮之前,它工作正常
{Object.keys(this.state.activeContent).map((key, index) =>
<input type="radio" name="key" value={key}
checked={this.checkOption(this.state.activeContent[key].id)}
onChange={() => this.saveKey_Index(this.state.activeContent[key].id, index)} />
)}
<button onClick={() => this.saveActive(this.state.activeContent)}>Save Active</button>
<button onClick={() => this.runHTML("<html> <title> test </title> </html>")}>Play</button>
“播放”按钮没有错误,然后我可以从活动列表中单击我想要的元素。但是当我单击“保存活动”时,我无法单击列表中的任何项目,我收到以下错误: https ://ibb.co/hpJp48
以下是这两个功能: 播放:
runHTML(htmls) {
console.log(htmls)
this.setState({moved: true})
var template = { htmlContent: this.state.htmlContent };
return (<div dangerouslySetInnerHTML={template} />)
}
保存活动:
saveActive(list) {
this.setState = ({ moved: true })
}
我得到的错误来自:saveKey_Index:
saveKey_Index(key, index) {
this.setState({ savedKey: key })
this.setState({ savedIndex: index })
}
是的,我已经绑定了 saveActive 和 saveKey_Index(错误显然来自 saveKey_Index)
this.saveKey_Index = this.saveKey_Index.bind(this)
this.saveActive = this.saveActive.bind(this)
为什么我在 saveActive 按钮后而不是在播放后出现错误?我可以在播放按钮中设置状态,即使它也没有绑定。这是为什么?
解决方案
您正在setState()
使用以下代码覆盖组件的功能:
saveActive(list) {
this.setState = ({ moved: true })
}
那里不应该=
有,只是
saveActive(list) {
this.setState({ moved: true })
}
推荐阅读
- react-native - 在导航器中的何处放置重置堆栈功能?
- node.js - 如何使用 node.js 和 MongoDB Atlas 删除数据库?
- php - 我的登录没有重定向到我在 PHP 中的索引
- typescript - 将 Typescript 的类型交集与可区分的联合使用时出现意外的类型错误
- mouseevent - 当我将鼠标悬停在 Wix 元素上时,它会打开和关闭吗?
- php - 无法为每个重新声明函数错误
- mdriven - 缺少 DisplayWecpofUI()
- python - Python AGI 脚本导致 Asterisk 错误 510
- sql - 仅从一个表中选择列名与另一表中行的值匹配的列
- ios - 删除 UISearchBar 文本字段周围的填充