es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Ejemplo básico para una historia de Storybook de un componente con dependencia

Soy nuevo en Storybook y los documentos son bastante claros sobre la forma idiomática de escribir historias en Angular. Aquí hay un ejemplo para mi aplicación:

import { Meta, Story } from '@storybook/angular';
import { CustomerListComponent } from "@app/modules/customer/customer-search/components/customer-list/customer-list.component";

export default {
  title: 'Customer List',
  component: CustomerListComponent,
} as Meta;

const Template: Story = (args) => ({
  props: args,
});

export const EmptyArgs = Template.bind({});
EmptyArgs.args = {};

Esto falla con el siguiente error:

enter image description here

De hecho, si observamos el constructor de CustomerListComponent, hay una dependencia en CustomerSearchComponent.

@Component({
  selector: 'customer-list',
  templateUrl: './customer-list.component.html',
  styleUrls: ['./customer-list.component.scss']
})
export class CustomerListComponent {
  constructor (
    private customerSearchComponent: CustomerSearchComponent,
  ) {
  }
...

Entonces, ¿qué se hace típicamente en este caso? ¿Puedo indicarle a Storybook que cargue ese componente y cualquier dependencia que tenga, y así sucesivamente? ¿Necesito pasar un simulacro de CustomerSearchComponent de alguna manera? Estoy teniendo problemas para encontrar ejemplos claros de casos como este, los documentos de Storybook parecen asumir componentes sin dependencias de otros componentes.

Esto también me hace pensar: ¿no debería planificar el uso de Storybook para renderizar vistas más grandes (es decir, padres con varios componentes hijos)? ¿Será difícil de configurar?

PD: Pregunta aleatoria, ¿la sintaxis de storiesOf está en desuso? No está en la documentación oficial pero se encuentra en tutoriales en toda la web.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Manejo de dependencias en Storybook para Angular

    Si encuentra errores relacionados con las dependencias al escribir historias para componentes de Angular en Storybook, hay algunas soluciones:

    • Corregir las dependencias: Modifique su código para que el componente se pueda instanciar sin las dependencias que faltan. Esto puede implicar crear una dependencia simulada que se pueda pasar.
    • Simular las dependencias: Cree dependencias simuladas y páselas a la plantilla o props de la historia. Esto se puede hacer con la propiedad providers del objeto Meta.
    • Cargar las dependencias a través de las importaciones del módulo: Si su componente forma parte de un módulo, puede utilizar la propiedad moduleMetadata de Storybook para cargar las dependencias necesarias desde el módulo.

    En cuanto a si Storybook puede manejar la representación de vistas más grandes con varios componentes secundarios, es ciertamente posible pero puede requerir alguna configuración adicional. Puede utilizar historias anidadas para descomponer componentes complejos en partes más pequeñas y manejables.

    Finalmente, la sintaxis de storiesOf no está oficialmente obsoleta, pero se recomienda utilizar el nuevo formato de Objeto que se muestra en el ejemplo que proporcionaste. El formato de Objeto es más escalable y produce un código más limpio.

Comments are closed.