Es gibt eine Reihe von nützlichen Antworten hier, damit ich diese jsfiddle demo hinzufügen möchten. Es zeigt, wie es in Aktion funktioniert. Zum Speichern und Abrufen des Inhalts des Editors wird hier local storage
verwendet. Aber für Datenbank-Fall, das Grundprinzip das gleiche.
In dieser Demo sehen Sie eine einfache Editor-Komponente. Wenn Sie auf SAVE RAW CONTENT TO LOCAL STORAGE
klicken, speichern wir den aktuellen Editor-Inhalt als String zum lokalen Speicher. Wir verwenden convertToRaw
und JSON.stringify
für sie:
saveRaw =() => {
var contentRaw = convertToRaw(this.state.editorState.getCurrentContent());
localStorage.setItem('draftRaw', JSON.stringify(contentRaw));
}
Wenn nach, dass Sie die Seite neu zu laden, wird der Editor mit dem Inhalt und Arten initialisiert werden, was Sie speichern. In constructor
lesen wir die entsprechende lokale Speichereigenschaft und mit JSON.parse
, convertFromRaw
und createWithContent
Methoden initialisieren Editor mit dem zuvor gespeicherten Inhalt.
constructor(props) {
super(props);
let initialEditorState = null;
const storeRaw = localStorage.getItem('draftRaw');
if (storeRaw) {
const rawContentFromStore = convertFromRaw(JSON.parse(storeRaw));
initialEditorState = EditorState.createWithContent(rawContentFromStore);
} else {
initialEditorState = EditorState.createEmpty();
}
this.state = {
editorState: initialEditorState
};
}
Ich muss das in Datenbank beibehalten. Wie kann ich es serialisieren und deserialisieren? –
Ich habe meine Antwort bearbeitet :) – christophetd
Ich kann das rohe Objekt einfach in mongodb, ordentlich speichern. –