Valores

Los bloques de valor son bloques con conexiones de salida. Estos actúan como valores (también conocidos como expresiones) en un lenguaje basado en texto.

Al igual que todos los bloques en Blockly, los bloques "value" se pueden convertir en cadenas de código un generador de código de bloque.

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];
}

Cómo recopilar cadenas de argumentos

Todos los generadores de códigos de bloque requieren recopilar los valores de los campos y recopilar el código de bloques 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);

Si haces referencia varias veces al código de un bloque interno, deberías agregar almacenamiento en caché de argumentos a tu bloque.

Código de retorno

El tipo de datos que se muestra de un generador de código de bloque de valor es un array en el que el primer es una cadena de código y el segundo valor es una precedencia.

return ['my code string', Order.NONE];

La prioridad controla cuándo se agregan paréntesis alrededor de cadenas de código de bloque. Consulta la documentación sobre paréntesis para obtener más información sobre cómo controlar cuándo se agregan paréntesis.