Tengo una aplicación de tablero que procesa flujos de datos y acciones de usuario a través useReducer e immer para actualizar el estado. Estas actualizaciones están disponibles cuando React está listo para renderizar.
Me gustaría invitar a otros a crear sus propios widgets de tablero para mi aplicación. Estos widgets estarían controlados por el estado derivado del reductor del tablero.
Es posible que algunos widgets complejos también useReducer localmente. Es posible que tengan sus propios flujos de datos y entradas locales. Aquí radica un problema de diseño: ¡los widgets que useReducer se renderizarán detrás del resto del tablero!
Según tengo entendido, esto se debe a que la salida del tablero useReducer solo está disponible justo antes de un procesamiento, lo que significa que los widgets controlados por estos datos que desean useReducer localmente deben actualizarse a través useEffect y, por lo tanto, esperar otro procesamiento para dibujar su estado.
Soluciones posibles:
useMemo en widgets para discutir y procesar datos antes de renderizar. Para garantizar que no se pierda el estado, también podría actualizar useMemo y devolver un valor generado inicialmente por useRef . Esto parece... como un anti-patrón.