Вы не можете «сопоставить шаблон» с переменной, которая не является константой. Stream.empty
не является «стабильным» идентификатором, поскольку он представляет собой некоторый метод:
/** The empty stream */
override def empty[A]: Stream[A] = Empty
, который потенциально может вернуть любое значение в любое время. Компилятор не знает, что его возвращаемое значение всегда Empty
, поэтому оно определяет его как потенциальную изменяющуюся переменную. Слишком глубоко, чтобы это обнаружить.
Однако, когда вы назначаете повтор метода методу val
(будучи стабильным идентификатором с неизменяемым), ваш код может обрабатывать его с помощью шаблона.
Вы можете прочитайте этот , вызывая гипотезу, объясняющую, почему соответствие шаблонов ожидает стабильный идентификатор.
Вы можете добавить дополнительный флажок на боковой панели, используя InspectorControls
и Checkbox Control
. Посмотрите на компонент галереи и узнайте, как реализовать вещи на боковой панели, используя [ 112]. Это может быть сложно, поэтому для упрощения реализации вы можете взглянуть на другие основные компоненты Гутенберга.
И эта ссылка может помочь вам в использовании CheckboxControl
.
В приведенном выше коде вы просто добавляете хук, который меняет имя класса по умолчанию для галереи блоков, а это не то, о чем вы просите. Обратите внимание, что, насколько мне известно, вы не можете редактировать основные блоки по умолчанию (кроме очень немногих), если вы не скопируете весь основной блок и не добавите в него дополнительную функциональность.