在React组件中公开第三方lib(Firepad)方法

扎克·安格(Zac Anger)

我一直在寻找答案的方式已经有几个星期了,并且阅读了所有可以找到的相关内容(在SO,React的文档中,以及在诸如react-codemirror等相关库的源代码中),找不到我能理解的答案。我在React上有些虚弱,这可能就是我倒下的地方。

我正在开发一个使用React建在React中的项目(称为Pharaoh,一种用于教室的浏览器和桌面编辑器),该项目使用Firepad(因此使用我喜欢的Firebase和CodeMirror)。我已经使用了上述所有技术,包括使用CodeMirror编写桌面Markdown编辑器,以及使用Firebase编写了一些演示/实践应用程序。我在这里的问题几乎肯定是不完全了解React的问题之一。

我想要做的就是能够将文件保存到Firepad / CodeMirror实例之外(到桌面)。我通常知道如何使用FileReader和HTML5 Filesystem API,甚至可以使用来完成node-fs,因为我的目标是我们的桌面应用程序(在NW.js上运行)。

CodeMirror有一些非常有用的方法,例如editorName.codeMirror.doc.getValue()可以完美运行的方法。Firepad甚至更简单editorName.firepad.getText()(而且.setText()我最终还会用它来从文件系统加载文件)。我知道这些是如何工作的,并且可以看到我如何将它们返回的内容保存起来,这没问题。我的问题是我实际上无法访问这些方法。对于从第三方库或从一般组件访问方法,这可能只是一些愚蠢的事情,但是我对此感到困惑。我经常在工作中使用的工具Codeshare.io(我相信它是在React中构建的,并使用Firepad)公开了这些方法,因此,我将深入研究它们的源代码(对cURL来说是这样),看看是否可以找到任何方法答案,但是任何更快的选择都将非常有帮助。

非常感谢!

注意:我想我需要赢得更多的声望。发布前删除/更改了一堆链接。

杰伊卜

使用这些npm packages- ,bracereact-acefirebasefirepad

由于firepad需要ace全局显示,因此在导入之前将大括号分配给全局var like(不是最好的方法,但可以工作)firepad

import brace from 'brace';
global.ace = brace;
global.ace.require = global.ace.acequire;
import Firepad from 'firepad';

使用ref得到的实例ReactAce,并初始化它componentDidMount使用:

new Firepad.fromACE(this.firepadRef, this.aceInstance.editor, options);

对于CodeMirror编辑器也是如此。

希望这会有所帮助。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在React中调用第三方Lib函数

来自分类Dev

伪造第三方库中的扩展方法

来自分类Dev

在angular指令中使用第三方lib

来自分类Dev

如何部署第三方VueJS组件?

来自分类Dev

如何使用第三方组件

来自分类Dev

如何覆盖第三方react组件的默认样式?

来自分类Dev

当第三方库触发事件时,如何告诉React组件更改其状态?

来自分类Dev

在React组件内显示自定义第三方html元素

来自分类Dev

如何在 React Native 中将 ScrollView 与第三方组件一起使用?

来自分类Dev

将第三方组件包装在angular2中

来自分类Dev

您如何引用Rails应用程序中的第三方反应组件?

来自分类Dev

如何在VueJS中合并2个第三方组件

来自分类Dev

在Spring托管组件中自动连接第三方库

来自分类Dev

为第三方组件中的子元素设置样式

来自分类Dev

如何查找第三方库中正在使用的第三方组件

来自分类Dev

如何模拟第三方React Native NativeModules?

来自分类Dev

Django向第三方模型添加方法

来自分类Dev

如何模拟第三方静态方法

来自分类Dev

加载第三方脚本的正确方法?

来自分类Dev

如何向第三方库添加方法

来自分类Dev

从Django中的第三方应用收集消息

来自分类Dev

在Pelican中安装第三方Markdown扩展

来自分类Dev

第三方键盘中的resignFirstResponder()

来自分类Dev

获取Java中的第三方库版本

来自分类Dev

防止第三方函数中的exit()退出?

来自分类Dev

Chrome审核:第三方代码中的Datacamp

来自分类Dev

在Flutter中编辑第三方插件

来自分类Dev

在厨师中包括第三方资源

来自分类Dev

在Prestashop中安装第三方库