react针对不同类型,渲染不同组件

业务中遇到一个场景是,不同类型,渲染不同组件,一开始使用的是switch ,代码很不优雅
可以使用策略模式优化

const PRODUCT = {
    CUSTOMIZE: {
        label: '自定义',
       value: 'customize',
    },
    SYSTEM: {
       label: '系统',
       value: 'system',
    },
}


const Details = ({ type, ...props }) => {
  const renderContentByType = {
    [PRODUCT.CUSTOMIZE.value]: {
      callback: ({ dataSource, onChange, form }) => <Customize dataSource={dataSource} onChange={onChange} form={form} />,
    },
    [PRODUCT.SYSTEM.value]: {
      callback: ({ dataSource, onChange, form }) => <ImgTitle dataSource={dataSource} onChange={onChange} form={form} />,
    },
  };

  return (
    <div>
      {
        renderContentByType[type] &&
         renderContentByType[type].callback({ ...props })
      }
    </div>
  );
};


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容