我一直在使用 SunEditor 进行测试,因为我想预加载存储在 DB 中的 HTML 文本并让用户在必要时对其进行修改。我从父级传递了一个 ref 变量,因此当单击提交按钮时,他可以获得值并保存修改。setContents 有时只是工作。当我保存项目并再次编译时,出现了文本。但是,如果我使用该应用程序或刷新窗口文本消失。我已经检查过该变量是否仍然具有该值。我是 React 的新手,我不确定是我做错了还是 suneditor-react 失败了。你能帮助我吗?
这是我的代码:
export const TranslationArea = React.forwardRef((props, ref) =>{
const handleEditorChange = (value) => {
console.log(value);
ref.current= value;
}
const handleClick = () => {
console.log(ref.current);
}
return(
<div>
<h2>{props.title}</h2>
<SunEditor
autoFocus={true}
width="100%"
height="150px"
setOptions={{
buttonList: [
// default
['undo', 'redo'],
['bold', 'underline', 'italic', 'list'],
['table', 'link', 'image'],
['fullScreen']
]
}}
setContents={props.content}
onChange={handleEditorChange}
/>
<div>{props.content}</div>
<button onClick={handleClick}>Content</button>
</div>
);
});
这是在 SunEditor div 中正确加载内容的屏幕截图(仅在编译项目时):
我已经显示了一个具有相同 props.content 的 div,只是为了检查 fowardRef 是否正常工作。为什么 setContents 现在可以工作了?我用 React 工具检查并加载了属性:
任何想法?