Как сохранить и загрузить Markdown с помощью React? - PullRequest
3 голосов
/ 25 мая 2020

Я новичок в React. У меня есть задание по созданию Markdown Editor с Blockstack ID интегрированным.

Я пытаюсь сохранить содержимое в файл JSON, а затем загрузить это снова в редакторе, но похоже, что он не может загрузить этот JSON файл обратно в редактор.

Вот код:

import MDEditor from '@uiw/react-md-editor';

    <MDEditor
       onChange={e=>this.updateMarkdown(e)}
       value={this.state.markdown}
    />


             <button
              onClick={e => this.saveNewText(e)}>
              Submit Changes
             </button>

  updateMarkdown(editor, data, value) {
    this.setState({ markdown: value})
  }


  saveNewText() {
    const { userSession } = this.props
    let currentDocument = this.state.currentDocument
    let newDocument = {
      md: this.state.markdown,
      created_at: Date.now()
    }

    const options = { encrypt: true }
    userSession.putFile('Document.json', JSON.stringify(newDocument), options)
      .then(() => {
        this.setState({
          currentDocument:newDocument
        })
      })
   }

  loadNewText() {
      const { userSession } = this.props
      const options = { decrypt: true }
      userSession.getFile('Document.json', options)
      .then((file) => {
          var docFile = JSON.parse(file || '[]');
          this.setState({
            currentDocument:docFile,
            markdown:docFile.md
          });
      })
    }

  componentWillMount() {
    const { userSession } = this.props
    this.setState({
      person: new Person(userSession.loadUserData().profile),
      username: userSession.loadUserData().username
    });
    this.loadNewText();

1 Ответ

1 голос
/ 29 мая 2020

Пакет response-blockstack предоставляет useFile ловушку для React для сохранения содержимого в хранилище Blockstack Gaia:

const [document, setDocument] = useFile('Document.json')

Это заменяет большую часть вашего кода, кроме преобразования текста и JSON.

...