首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在故事书中测试函数道具的功能?

如何在故事书中测试函数道具的功能?
EN

Stack Overflow用户
提问于 2020-05-28 10:57:45
回答 1查看 1.1K关注 0票数 0

我有一个父组件<AssetSelectorMenu>,它由两个子组件组成:

代码语言:javascript
复制
export const AssetSelectorMenu = (({ assets, sortByName }) => {

  return (
    <>
      <AssetSelectorHeader sortByName={sortByName} />
      {assets && assets.map((asset) => (
        <AssetSelectorRow key={asset} />
      ))}
    </>
  );
});

AssetSelectorMenu的故事书

代码语言:javascript
复制
export const Default = () => (
  <AssetSelectorMenu sortByName={action("sortByName")} assets={assets} />
);

AssetSelectorMenu的故事书中,我想测试一下prop sortByName函数实际上是按名称对资产进行可视化排序的。目前,它只确保函数被调用,但从视觉上看,它不会对资产进行排序。我该怎么做呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-28 11:29:40

如果您想在您的Storybook示例中使用状态,以便您的组件完全基于交互工作,那么您需要使用React中的createElement函数。

下面是一个使用Checkbox组件的简单示例,该组件的值由状态管理,该组件使用Redux或Context等状态管理器进行模拟。

代码语言:javascript
复制
import { Fragment, useState, createElement } from 'react'

<Preview>
  <Story name="Default">
    {createElement(() => {
      const [value, setValue] = useState(['Yes'])
      const onChange = (event, value) => {
        setValue(value)
      }
      return (
        <Checkbox
          name="checkbox"
          values={[
            { label: 'Yes', value: 'Yes' },
            { label: 'No', value: 'No' }
          ]}
          value={value}
          onChange={onChange}
        />
      )
    })}
  </Story>
</Preview>
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62056253

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档