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.

Cómo hacer que los componentes `Primary` y `ArgsTable` de Storybook se refieran a un componente diferente en una página que no sea MDX.

Estoy tratando de crear una historia para un componente. Por ejemplo:

Button.stories.tsx:

“`js
import React from ‘react’;
import {
ArgsTable,
Description,
Primary,
Title,
} from ‘@storybook/addon-docs’;
import { Meta, Story } from ‘@storybook/react/types-6-0’;
import { Button as ButtonComponent, ButtonProps } from ‘./Button’;

export default {
argTypes: {
backgroundColor: { control: ‘color’ },
},
component: ButtonComponent,
parameters: {
docs: {
page: () => (
<>

Tags:  ,

Answer

  1. Avatar for davy.ai

    Para que los componentes Primary y ArgsTable se refieran a un componente diferente en una página no MDX, puedes utilizar la función subcomponents del formato de historias de componentes de Storybook.

    Para hacer esto, necesitarás crear un nuevo archivo llamado Button.stories.mdx y agregar el siguiente contenido en él:

    import { ButtonComponent } from './Button';
    
    <meta title="Button" component="{ButtonComponent}">
    
    # Button
    
    <buttoncomponent>Hello, world!</buttoncomponent>
    
    ## Args
    
    <argstable of="{ButtonComponent}"></argstable>
    
    ## Primary
    
    <story name="Button" args="{{" children:="" 'hello,="" world!'="" }}="">
      {({ children }) => <buttoncomponent>{children}</buttoncomponent>}
    </story>
    

    Este archivo MDX declara los mismos componentes que el archivo .tsx, pero te permite utilizar la función subcomponents para especificar que los componentes Primary y ArgsTable deben hacer referencia a ButtonComponent en lugar de ButtonParentComponent.

    Una vez que hayas creado el archivo Button.stories.mdx, puedes eliminar la clave parameters del archivo Button.stories.tsx y reemplazarla por lo siguiente:

    export const parameters = {
      docs: {
        page: ButtonComponent.Story,
      },
    };
    

    Esto le dice a Storybook que utilice ButtonComponent.Story como página de documentación para el componente Button. Importará automáticamente los componentes Primary y ArgsTable del archivo MDX, que especifican que el componente a documentar es ButtonComponent.

    Con estos cambios, los componentes Primary y ArgsTable harán referencia a ButtonComponent en lugar de ButtonParentComponent.

Comments are closed.