reactjs quillRef.getSelection不是函数

u3r8eeie  于 2023-01-02  发布在  React
关注(0)|答案(2)|浏览(188)

我试图在quill react包的当前光标位置插入一些虚拟文本,但是我在控制台中得到以下错误:

quillRef.getSelection不是函数

  • 密码如下 *
import ReactQuill from "react-quill";
import "react-quill/dist/quill.snow.css";

  const editorRef = useRef();

  const insertText = (quillRef) => () => {
    var range = quillRef.getSelection();
    console.log("range", range);
    let position = range ? range.index : 0;
    quillRef.insertText(position, "Hello, World! ");
  };

  <Button onClick={insertText(editorRef.current)}>Add Text</Button>

          <ReactQuill
            ref={editorRef}
            name="format"
            id="text-area"
            theme="snow"
            value={values.format}
          />
o2rvlv0m

o2rvlv0m1#

对于getSelection,请使用以下命令:

quil.current.getEditor().getSelection();

对于插入文本,请使用以下命令:

quil.current.getEditor().insertText(position, "Hello, World! ");
yx2lnoni

yx2lnoni2#

editorRef似乎没有正确引用Quill编辑器示例。ref属性应传递给ReactQuill组件,而不是Button组件。
请尝试以下操作:

<ReactQuill
  ref={editorRef}
  name="format"
  id="text-area"
  theme="snow"
  value={values.format}
/>
<Button onClick={insertText(editorRef.current)}>Add Text</Button>

然后,在insertText函数中,可以使用quillRef. getSelection()获取当前选择。

const insertText = (quillRef) => () => {
  var range = quillRef.getSelection();
  console.log("range", range);
  let position = range ? range.index : 0;
  quillRef.insertText(position, "Hello, World! ");
};

相关问题