che*_*sta 3 jsx ace-editor reactjs
我有以下反应结构(我为这篇文章简化了它):
<div>
<div>
<div
<AceEditor/>
</div>
</div>
<div>
<p/>
<hr/>
{items}
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
AceEditor 是从react-acenpm 包中导入的,{items}是一个大小不一的数组,从this.state. 一切正常,除了一件事:每次由于 中的更改{items}(由于 中的数组更改this.state)而重新渲染此结构时,AceEditor 中的文本都会重置。没有触发 onChange 事件,我似乎无法追踪问题的根源。
有谁知道导致问题的原因以及如何解决这个问题?
对状态的更改将导致渲染重新显示 DOM,从而在状态更新时清除您的更改。
您很可能需要将 AceEditor 的状态存储在 state 中,以便在 DOM 重新渲染时重新显示。
function onChange(newValue) {
// store this value in state!!
this.setState({ newValue: newValue});
}
// Render editor
render(
<AceEditor
mode="java"
theme="github"
onChange={onChange}
name="UNIQUE_ID_OF_DIV"
value={this.state.newValue}
editorProps={{$blockScrolling: true}}
/>,
document.getElementById('example')
);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2272 次 |
| 最近记录: |