lowcode-engine icon indicating copy to clipboard operation
lowcode-engine copied to clipboard

关于prop-types

Open lilithyang2018 opened this issue 2 years ago • 3 comments

在lowcode-tools项目中发现某处的props项写法如下图

instanceOf

代码检查时会报错

然后我看了一下lowcode-types那边关于prop-types的源码,复合类型的type只有以下几种 prop-types

请问这里的instanceOf,对应的是哪种复合类型?还是说只是想使用IPublicTypeBasicType中的node这种基本类型? 不报错的写法应该是怎样的?

lilithyang2018 avatar Nov 13 '23 08:11 lilithyang2018

通过 PR 添加了 IPublicTypeInstanceOf 的类型定义。

lowcode-tools 的部分定义的确存在问题。

{
    name: 'children',
    propType: {
      type: 'instanceOf',
      value: 'node',
    },
    description: '面包屑子节点,需传入 Breadcrumb.Item',
}
  • propType 的 value 被设置为 'node',这在 PropTypes.instanceOf 的上下文中不适用,因为 'node' 不是一个类或构造函数。
  • PropTypes.node 适用于验证可以渲染的内容,但不适用于 instanceOf 的类型检查。

代码应修改为以下形式,以确保 children prop 的类型正确定义:

{
    name: 'children',
    propType: {
      type: 'instanceOf',
      value: 'Breadcrumb.Item',
    },
    description: '面包屑子节点,需传入 Breadcrumb.Item',
}

  • 修改后,PropTypes.instanceOf(Breadcrumb.Item) 表明 props.children 应是 Breadcrumb.Item 的实例。
  • 这种类型检查更精确,确保 children prop 仅接受 Breadcrumb.Item 组件,保证面包屑组件的正确功能和渲染。

liujuping avatar Nov 13 '23 11:11 liujuping

@eternalsky lowcode-tools 相关的问题辛苦处理一下。

liujuping avatar Nov 13 '23 11:11 liujuping

@eternalsky lowcode-tools 相关的问题辛苦处理一下。

收到,近期会处理一下

eternalsky avatar Nov 30 '23 08:11 eternalsky