No se pudo ejecutar 'removeChild' en 'Nodo': el nodo que se eliminará no es un elemento secundario de este nodo.

Cuando me encontré con este tipo de error durante el desarrollo del proyecto React, me quedé perplejo. El formulario anterior estaba bien, pero esta vez usé pestañas para cambiar entre los dos formularios y apareció este problema...

La operación para encontrar el problema es: después de actualizar la página, haga clic directamente en una celda de la tabla que se muestra por pestañas de forma predeterminada y se informará directamente de un error.

Puede ser el siguiente mensaje de error. La traducción de este mensaje de error es que se eliminó un nodo, pero no es un nodo secundario del cuerpo. (De hecho, debe pensarse aquí que el renderizado no está completo, lo que hace que el nodo dom se elimine antes de montarlo...) -----Resuelto por la Solución 2:

inserte la descripción de la imagen aquí

También es posible que se reporte este tipo de error: (Resuelto por la Solución 1)

Más tarde, en el proceso de exploración de la solución, encontré que puede haber dos razones diferentes, aquí hay un resumen y un registro:

1. El problema de la representación repetida de setState es que se vuelve a llamar a setState antes de que se complete la inicialización de la página (es fácil que suceda durante la representación de varias tablas). Mi solución es agregar un atributo de carga a la tabla y luego permitir el usuario para operar después de que se complete la carga.

<React.fragment>
    <Spin spinning={loading}>
        ...pages...
    </Spin>
</React.fragment>

2. Debido a que la cuadrícula agrícola utilizada por el componente de la tabla en el proyecto representa cada celda y finalmente completa la representación de toda la tabla, es posible que no se represente o actualice como un todo cuando opera otras áreas además de la tabla, por lo que cada tiempo Cada vez que antes de operar un área que no sea una tabla, debe llamar a la API para detener la edición (común en un proceso de renderizado de tablas).La solución es agregar api.stopEditing() al realizar operaciones en otras áreas.

Leí algunos artículos antes de este, como agregar un temporizador para retrasar la ejecución. De hecho, el principio es que cuando se procesa el DOM, el contenido del DOM no ha respondido después de la eliminación. Si aún no se resuelve, puede trata de pensar en la solución a partir de esta idea.

Supongo que te gusta

Origin blog.csdn.net/BUG_CONQUEROR_LI/article/details/127241025
Recomendado
Clasificación