Inicialmente, esta es mi configuración de nodos.
RED.nodes.registerType('HelloWorld', { category: 'HelloWorld', defaults: { firstProp: {value: false} }, } Este nodo helloworld luego se coloca en un flujo.
Luego, agregué otra propiedad, secondProp a la configuración y reinicié node-red.
RED.nodes.registerType('HelloWorld', { category: 'HelloWorld', defaults: { firstProp: {value: false} secondProp: {value: true} }, } Cuando exporto el flujo, noto que secondProp está configurado como falso. Esperaba que se configurara en el valor predeterminado, lo cual es true .
[ { "id": "04abe6r5baqs16dc", ... "firstProp": false, "secondProp": false, //expected it to be true "x": 290, "y": 360 } ]¿Puedo saber cómo resuelvo esto y me aseguro de que los nodos personalizados existentes en el flujo obedezcan los valores predeterminados de una propiedad recién agregada?
NOTA:
Cuando extraigo el nodo personalizado y lo coloco en el flujo, no tiene este problema, es decir, el valor secondProp es true .
Uno de los mantenedores de node-red comentó
El archivo de flujo no se modifica solo porque modificó el nodo personalizado src. Tendría que manejar cualquier actualización en el lugar en
oneditprepare. Este es un comportamiento normal por lo que puedo ver.
Entonces, como solución alternativa, solo podemos hacer esto
RED.nodes.registerType('HelloWorld', { category: 'HelloWorld', defaults: { firstProp: {value: false} }, oneditprepare: { if (this.secondProp === undefined) { this.secondProp = true; } } }Tenga en cuenta que esto requerirá que abramos el cuadro de diálogo de edición del nodo para que tenga efecto.