Блоки значений — это блоки с выходными соединениями. Они действуют как значения (также известные как выражения) в текстовом языке.
Как и все блоки в Blockly, блоки значений можно превратить в строки кода, определив генератор блочного кода.
import {javascriptGenerator, Order} from 'blockly/javascript';
javascriptGenerator.forBlock['custom_block'] = function(block, generator) {
// Collect argument strings.
const fieldValue = block.getFieldValue('MY_FIELD');
const innerCode = generator.valueToCode(block, 'MY_VALUE_INPUT', Order.ATOMIC);
// Return code.
return ['my code string', Order.NONE];
}
Собрать строки аргументов
Все генераторы блочного кода требуют сбора значений полей и кода внутренних блоков .
// Collect field values.
const fieldValue = block.getFieldValue('MY_FIELD');
// Collect inner block code strings.
const innerCode = generator.valueToCode(block, 'MY_VALUE_INPUT', Order.ATOMIC);
Если вы ссылаетесь на код внутреннего блока несколько раз, вам следует добавить кеширование аргументов в свой блок.
Код возврата
Тип возвращаемого значения генератора блочного кода значений — это массив , где первое значение — это строка кода, а второе значение — приоритет.
return ['my code string', Order.NONE];
Приоритет определяет, когда вокруг строк блочного кода добавляются круглые скобки. Дополнительную информацию о том, как контролировать добавление скобок, см. в документации по круглым скобкам .