reactjs 析构的赋值语句可以返回任意数量的对象吗?

qoefvg9y  于 2023-03-17  发布在  React
关注(0)|答案(1)|浏览(126)

我有一系列的Storybook故事,还有一个返回ComponentStory对象的函数,我想找一个简洁的方法来克隆一堆故事,而不用像下面这样:

export const Default = bindStory(Template);
export const WithError = bindStory(Template);
export const AnotherOne = bindStory(Template);

有些文件有20,30个故事在里面,所以这可能会变得笨拙而且不是很枯燥。我想知道是否有一种方法可以像这样定义它:

export const [Default, WithError, AnotherOne] = bindStories(Template);

然后将.args应用于这些单独的对象,问题是要确保bindStories函数总是返回足够的ComponentStory对象示例。

gojuced7

gojuced71#

要做到这一点,你可以使用无限迭代器。解构赋值对任何可迭代对象都有效,所以无限迭代器允许你喜欢多少对象就有多少对象。这意味着你不需要传递length,变量也永远不会被定义。

function* getObjects() {
  const object = {
    lorem: 1
  };

  while (true) {
    yield { ...object };
  }
};

const [first, second, third, fourth] = getObjects();
console.log({
  first,
  second,
  third,
  fourth
});

相关问题