storybook [Bug]: 使用Object.create时,argTypes不起作用,但spread可以,

b4lqfgs4  于 29天前  发布在  其他
关注(0)|答案(1)|浏览(182)

描述bug

我正在尝试为故事中的示例创建一个自定义argType。
以下代码不起作用:

const defaultArgTypes = {
  test: {
    control: {
      options: {
        test: 'test',
      },
    },
  },
};
// ...more code
export const AlertWithIcon: Story<AlertProps> = Template.bind({});
AlertWithIcon.argTypes = Object.create(defaultArgTypes);

以下代码起作用:

const defaultArgTypes = {
  test: {
    control: {
      options: {
        test: 'test',
      },
    },
  },
};
// ...more code
export const DefaultAlert: Story<AlertProps> = Template.bind({});
DefaultAlert.argTypes = { ...defaultArgTypes };

在浏览器中看起来像这样:

我希望使用Object.create的原因是,当在默认argType对象上重复使用相同的属性时,可以节省内存。

"@storybook/addon-a11y": "^6.4.19",
    "@storybook/addon-actions": "^6.3.12",
    "@storybook/addon-essentials": "^6.3.12",
    "@storybook/addon-links": "^6.3.12",
    "@storybook/addon-storysource": "^6.4.19",
    "@storybook/react": "6.4.20",

重现问题

.

系统信息

Environment Info:

  System:
    OS: macOS 12.5
    CPU: (16) x64 Intel(R) Core(TM) i9-9980HK CPU @ 2.40GHz
  Binaries:
    Node: 16.18.1 - ~/.nvm/versions/node/v16.18.1/bin/node
    Yarn: 1.22.19 - ~/.nvm/versions/node/v16.18.1/bin/yarn
    npm: 8.19.2 - ~/.nvm/versions/node/v16.18.1/bin/npm

其他上下文

.

moiiocjp

moiiocjp1#

@shilman 不会说传播是一种解决方法,因为它没有重用对属性的相同引用,而是创建了新的属性,增加了内存使用。

相关问题