首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在TipTap编辑器中使用窗体

如何在TipTap编辑器中使用窗体
EN

Stack Overflow用户
提问于 2022-11-29 18:24:12
回答 1查看 26关注 0票数 0

我有如下所示的使用react钩子形式的文本输入

代码语言:javascript
复制
        <div className='mb-4'>
                                <label htmlFor='desc'>Description</label>
                                <TipTap 
                                
                                // iwant to pass the  ...regiseter props here
                                
                                />

                                <textarea
                                    className='w-full'
                                    id='desc'
                                    autoFocus
                                    {...register('desc', {
                                        required: 'Please enter description',
                                    })}
                                />
                                {errors.desc && (
                                    <div className='text-red-500'>{errors.desc.message}</div>
                                )}
                            </div>

这是我的提示组件

代码语言:javascript
复制
const TipTap = () => {
    const tipTapEditor = useEditor({
        extensions: [StarterKit],
        content: ``,
        onUpdate: ({ editor }: any) => {
            const html = editor.getHTML();
            console.log(html);
        },
    });

    return (
        <div>
            <MenuBar editor={tipTapEditor} />
            <EditorContent editor={tipTapEditor} />
        </div>
    );
};

我想使用提示编辑器如何将{...register}作为道具传递给TitaTap compenent

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-11-30 08:38:50

我建议使用来自RHF的组件或useController挂钩。

代码语言:javascript
复制
const DocumentController: React.FC<DocumentControllerProps> = ({
  name,
  required = false,
  readOnly = false,
}) => {
  const {
    field: { onChange, value, ref },
  } = useController({
    name,
    rules: { required },
  });
  return (
    <TipTapComponent
      initialValue={value}
      readOnly={readOnly}
      onChange={onChange}
    />
  );
};

在你的提示组件中,

代码语言:javascript
复制
const TipTap = ({ initialValue, onChange }) => {
  const tipTapEditor = useEditor({
    extensions: [StarterKit],
    content: initialValue,
    onUpdate: ({ editor }) => {
      const html = editor.getHTML();
      onChange(html);
    },
  });

  return (
    <div>
      <MenuBar editor={tipTapEditor} />
      <EditorContent editor={tipTapEditor} />
    </div>
  );
};
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74618638

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档