Шифер. js getBlocks () в новых API? - PullRequest
1 голос
/ 23 апреля 2020

Так я получал блоки в текстовом редакторе Slate версии ^ 0.42.2.

import { Value, Block } from 'slate';

const value = loadInitialData ? Value.fromJSON(initialValue) : Value.create();

getTitle = (value) => {
    const firstBlock = value.document.getBlocks().get(0);
    const secondBlock = value.document.getBlocks().get(1);

    const title = firstBlock.text ? firstBlock.text : 'No Title';
    const subTitle = secondBlock.text ? secondBlock.text : 'No SubTitle';

    return {title, subTitle};
  }

Теперь он прошел критические изменения, его API-интерфейс полностью изменен, и я не вижу ни одного примера, как чтобы получить узел из его DOM.

Я пробовал это, но я получил Ошибка: Не могу найти потомка по пути [0] в узле: {"children": [], "operations": [], "selection": null, "marks" : null, "history": {"undos": [], "redos": []}}

import { Node } from "slate";
const node = Node.get(editor, [0])
console.log("node",node)

я хочу выбрать первый элемент узла в качестве заголовка и затем сохранить блог в базу данных. Я не мог прогрессировать последние 2 дня, я прочитал весь список. js API, прочитал почти все проблемы в github, не мог понять.

const getTitle = () => {
    const [firstBlock, secondBlock] = value;
    const title =
      firstBlock && firstBlock.type === "heading-one"
        ? firstBlock.children[0].text
        : "No title";
    const subtitle =
      secondBlock && secondBlock.type === "heading-two"
        ? secondBlock.children[0].text
        : "No subtitle";
    return {
      title,
      subtitle
    };
  };

Когда я написал это, я получил сообщение об ошибке «myValue не повторяется». затем я переключился на это:

const firstBlock = myValue[0];
const secondBlock = myValue[1];

теперь оба значения возвращаются неопределенными. это значение, которое я имею в текстовом редакторе:

enter image description here

...