gpt4 book ai didi

reactjs - Ace Editor 清除 react 渲染

转载 作者:行者123 更新时间:2023-12-01 22:26:10 27 4
gpt4 key购买 nike

我有以下 react 结构(我在这篇文章中简化了它):

<div>
<div>
<div
<AceEditor/>
</div>
</div>
<div>
<p/>
<hr/>
{items}
</div>
</div>

AceEditor 是从 react-ace npm 包导入的,{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')
);

关于reactjs - Ace Editor 清除 react 渲染,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42983005/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com