How Can I Make Add Firepad To My Reactjs Project?
So I've been learning react, and wanted to make a basic firepad instance. My current setup is having one container div in my index.html, and having all of my react components rende
Solution 1:
From the link that Michael provided.
The problem is that you are trying to reference a DOM element before React has rendered your component.
, myCodeMirror = CodeMirror(document.getElementById('firepad'),{lineWrapping: true})
, myFirePad = Firepad.fromCodeMirror(firepadRef, myCodeMirror, {richTextShortcuts: true, richTextToolbar: true, defaultText: 'Hello, World!'});
By moving this code into
componentDidMount()
, it runs after the CodeMirror DOM element has been constructed and you'll be able to reference the DOM node. You will also probably find it easier to use the React ref attribute instead ofdocument.getElementById()
.
Solution 2:
Use these npm packages
- brace
, react-ace
, firebase
, firepad
.
Since firepad
needs ace
to be present globally, assign brace to global var
like(not the best way, but works) before importing firepad
import firebase from 'firebase/app';
import 'firebase/database';
import brace from 'brace';
global.ace = brace;
global.ace.require = global.ace.acequire;
import Firepad from 'firepad';
Use ref
to get instance of ReactAce
and initialize it in componentDidMount
using:
new Firepad.fromACE(this.firepadRef, this.aceInstance.editor, options);
Similarly for CodeMirror
editor.
Hoping, this would be of some help.
Post a Comment for "How Can I Make Add Firepad To My Reactjs Project?"