WordPress Гутенберг .updateBlock - PullRequest
1 голос
/ 14 июня 2019

Есть метод, который, я думаю, я могу использовать для своих нужд.Однако мне нужен пример этого с использованием: https://developer.wordpress.org/block-editor/data/data-core-editor/#updateBlockAttributes как это возможно?У кого-нибудь это может быть?

1 Ответ

1 голос
/ 16 июня 2019

Вы можете прочитать (очень крошечную) документацию по этой функции в Справочник редактора блоков . Вот живой пример из моего собственного кода в новом блоке слайдера для wordpress . Он использует компонент высшего порядка withDispatch для подачи компонентов с действиями.

withDispatch( ( dispatch, ownProps, registry ) => {

  return {
    updateEditable( isEditing ) {
      const { clientId, setAttributes } = ownProps;
      const { getBlockOrder } = registry.select( 'core/block-editor' );
      const { updateBlockAttributes } = dispatch( 'core/block-editor' );

      //update own isEditable
      setAttributes( { isEditing } );

      const innerBlockIds = getBlockOrder( clientId );
      innerBlockIds.forEach( ( innerBlockId ) => {
        updateBlockAttributes( innerBlockId, {
         isEditing,
        } );
      } );
    },
  };
} )

Чтобы поиграться с модулем данных WordPress, который предоставляет клиенту данные о редакторе или блоках, вы также можете использовать wp.data -Модуль. Находясь в бэкэнде, вы можете, например, перейдите в консоль браузера и введите wp.data.dispatch( 'core/editor' ).updateBlockAttributes(), чтобы проверить, что делает функция.

Вы также можете заглянуть в репозиторий gutenberg github. Базовые блоки также используют updateBlockAttributes. Например. в столбцах

Если вам нужна дополнительная информация об обработке данных в Гутенберге, вы можете прочитать этот очень хороший пост BLOB-объекта, в котором представлены API-интерфейсы wp.data, а также концепция withSelect и withDispatch компонентов более высокого порядка.

...