Blocos de valor são blocos com conexões de saída. Eles atuam como valores (também conhecidos como e expressões) em uma linguagem baseada em texto.
Assim como todos os blocos no Blockly, os blocos de valor podem ser transformados em strings de código definindo um gerador de código de bloco.
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];
}
Coletar strings de argumentos
Todos os geradores de código de blocos exigem coletar os valores dos campos e o código dos blocos internos.
// Collect field values.
const fieldValue = block.getFieldValue('MY_FIELD');
// Collect inner block code strings.
const innerCode = generator.valueToCode(block, 'MY_VALUE_INPUT', Order.ATOMIC);
Se você referenciar o código de um bloco interno várias vezes, deverá adicionar argumento em cache ao seu bloco.
Código de retorno
O tipo de retorno de um gerador de código de bloco de valores é uma matriz em que o primeiro O valor é uma string de código e o segundo valor é uma precedência.
return ['my code string', Order.NONE];
O controle de precedência quando parênteses são adicionados em torno de strings de código de bloqueio. Consulte a documentação sobre parênteses para obter mais informações sobre como controlar quando parênteses são adicionados.