因此,一旦单击单选按钮,我将尝试保存选定的选项。直到我按下以下代码中的按钮之一
{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。为什么会这样?
答案 0 :(得分:1)
您正在使用以下代码覆盖组件的setState()
函数:
saveActive(list) {
this.setState = ({ moved: true })
}
这里不应该有=
saveActive(list) {
this.setState({ moved: true })
}