Skip to content

Commit 6d1ae5b

Browse files
committed
perf: optimize refs.
1 parent 74cda6b commit 6d1ae5b

File tree

1 file changed

+11
-7
lines changed

1 file changed

+11
-7
lines changed

src/index.tsx

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import React, { useState, createRef, useRef, useImperativeHandle } from 'react';
1+
import React, { useState, useRef, useImperativeHandle } from 'react';
22
import { markdown, markdownLanguage } from '@codemirror/lang-markdown';
33
import { languages } from '@codemirror/language-data';
44
import { EditorView } from '@codemirror/view';
@@ -39,7 +39,7 @@ export interface IMarkdownEditor extends ReactCodeMirrorProps {
3939
}
4040

4141
export interface ToolBarProps {
42-
editor?: React.RefObject<ReactCodeMirrorRef>;
42+
editor: React.RefObject<ReactCodeMirrorRef>;
4343
preview: React.RefObject<MarkdownPreviewRef>;
4444
container: React.RefObject<HTMLDivElement>;
4545
containerEditor: React.RefObject<HTMLDivElement>;
@@ -72,15 +72,19 @@ function MarkdownEditor(
7272
...codemirrorProps
7373
} = props;
7474
const [value, setValue] = useState(props.value || '');
75-
const codeMirror = createRef<ReactCodeMirrorRef>();
75+
const codeMirror = useRef<ReactCodeMirrorRef>(null);
7676
const previewContainer = useRef<MarkdownPreviewRef>(null);
7777
const container = useRef<HTMLDivElement>(null);
7878
const containerEditor = useRef<HTMLDivElement>(null);
7979

80-
useImperativeHandle(ref, () => ({
81-
editor: codeMirror,
82-
preview: previewContainer,
83-
}));
80+
useImperativeHandle(
81+
ref,
82+
() => ({
83+
editor: codeMirror,
84+
preview: previewContainer,
85+
}),
86+
[codeMirror, previewContainer],
87+
);
8488

8589
const toolBarProps: ToolBarProps = {
8690
editor: codeMirror,

0 commit comments

Comments
 (0)