не
editor.push(img);
do
editor.current.push(img);
относительно реакции do c говорит
По сути, useRef походит на «коробку» который может содержать изменяемое значение в своем свойстве .current.
вам необходимо использовать атрибут .current для ссылки
в родительском компоненте, который содержит редактор. js и панели инструментов. js компонентов, там должна быть переменная ref, например
import Toolbar from "./toolbar.js"
import Editor from "./editor.js"
const parent = () => {
const editorRef = useRef(null);
/// other code for your component
return (
<div>
<Editor
// other props
editorRef = {editorRef}
/>
<Toolbar
// other props
editor= {editorRef}
/>
</div>
);
}
и в редакторе. js Файл делает это
Editor.js
const editorComponent = props => {
// some other code
return (
<div ref={props.editorRef}> // will be available because we are passing it
// in the parent component
</div>
);
}
и теперь в вашем
Toolbar.js
вы можете получить доступ к этому редактору следующим образом.
props.editor
это будет работать, потому что editor
сохраняется в компоненте, который содержит компоненты Toolbar
и Editor
.