【发布时间】:2016-12-26 12:39:37
【问题描述】:
我有一个使用 React 的应用程序。我现在在尝试实现 bootstrap-wysiwyg/bootstrap3-wysiwyg 包时遇到问题。
为了让我的<textarea> 作为ootstrap-wysiwyg/bootstrap3-wysiwyg 文本编辑器工作,我需要在文本编辑器上运行以下 JQuery 函数:
$(".textarea").wysihtml5()
这是我的组件:
import React, { Component } from 'react'
export class MyTextEditor extends Component {
render() {
return (
<div className="form-group">
<textarea className="textarea"></textarea>
</div>
)
}
}
如何在 React 组件中将该 JQuery 函数应用到我的 <textarea>?
我知道混合 React 和 JQuery 不是很好的做法,但我真的需要它来工作。如果有另一种方法可以让包工作,我会很感激作为答案。
否则,如果有人可以帮助我使其工作,将不胜感激!
更新: (仍在寻找)
感谢所有建议。我尝试了很多,但它们都导致了问题:
-
<ReactQuill>就是显示不好,按钮太大了。 -
<EditableDiv>给我:Uncaught Error: addComponentAsRefTo(...): Only a ReactOwner can have refs. - Syam Mohan 的回答给了我:
Uncaught TypeError: Cannot read property 'font-styles' of undefined at f
仍在寻找可行的方法,感谢您迄今为止所做的所有努力!
【问题讨论】:
-
我先看看react versions,看看你能不能用。
-
我在实现
<ReactQuill />时遇到了一些麻烦。我应该提到我的文本编辑器出现在模式上。ReactQuill按钮很大。 -
@MartinMazzaDawson 使用
<EditableDiv>给了我以下错误:Uncaught Error: addComponentAsRefTo(...): Only a ReactOwner can have refs.不确定这是从哪里来的,但基本上如果我使用<EditableDiv>会发生错误,如果不是我的应用程序运行没有错误。 -
当一个库修改 DOM 时,我们试图让 React 远离它。您需要创建一个组件来管理 jQuery 插件,主要是通过使用
componentDidMount/componentWillUnmount来初始化/销毁第三方库。在这里查看我的答案:stackoverflow.com/a/40350880/1333836
标签: jquery twitter-bootstrap reactjs bootstrap-wysiwyg