New Jan 6, 2025

how to get Redux context in a custom block

Libraries, Frameworks, etc. All from Newest questions tagged reactjs - Stack Overflow View how to get Redux context in a custom block on stackoverflow.com

I need to access Redux's data in a custom block in Blockly, because one of the dropdown form fields has options from redux.

export const form_select = {
  init(this: Block) {
    this.setColour(160)
    this.setTooltip('้€‰ๆ‹ฉ่กจๅ•')
    this.appendDummyInput()
      .appendField('้€‰ๆ‹ฉ่กจๅ•')
      // this
      .appendField(new FieldDropdown([]), 'FORMID')
    this.setHelpUrl('http://www.w3schools.com/jsref/jsref_length_string.asp')
    this.setOutput(true)
  },
}

Another problem is that FieldDropdown requires that a non-empty array must be passed, otherwise it will directly report an error, but my data may be empty, which is unavoidable.

I know of an ungraceful way to modify the private property menuGenerator_ directly, or inherit FieldDropdown and provide the setOptions method, and then modify the options after each redux data change. But this doesn't update Blockly immediately until I reopen the component. I wonder if there is a better solution, after all, this step is an essential step to incorporate Blockly into React.

Scroll to top