Как установить значение сланца на основе значения простой строки (сериализовано) - PullRequest
1 голос
/ 17 февраля 2020

Я создаю многофункциональный текстовый редактор со списком js в React, и мне нужно проанализировать URL из содержимого (например: www.website.me следует преобразовать в www.website.me).

У меня есть уже реализована функция для синтаксического анализа URL-адреса из обычного текста и последующего переноса содержимого в правильный тег.

Однако проблема заключается в том, что мне нужно отобразить проанализированное значение, как только пользователь наберет текст в редакторе ( на событие onChange). Вот что у меня есть:

onChange = ({ value }) => {
    const { isFocused } = value.selection
    if (isFocused !== this.state.isFocused) {
      this.setState({ isFocused })
    }

    const string = this.state.html.serialize(value)
    const linkifiedString = linkifyHtml(string) || ''
    if (value.document !== this.state.value.document) {
      const { onChange } = this.props
      onChange && onChange(linkifiedString)
    }

    // this won't work and will call the onChange method infinitely
    this.setState({ value: this.state.html.deserialize(linkifiedString) })
}

Спасибо за вашу помощь.

1 Ответ

0 голосов
/ 18 февраля 2020

Наконец, я нашел решение, вы должны создать свой собственный плагин Slate или использовать его: https://github.com/enzoferey/slate-instant-replace

...