在使用 React 的 EditableProTable 组件时,你可能会遇到以下类型错误:

不能将类型“{ columns: ProColumns[]; editable: { type: string; editableKeys: Key[]; onSave: (rowKey: any, row: any) => Promise; onChange: Dispatch<...>; actionRender: (row: any, config: any, defaultDoms: any) => any[]; }; }”分配给类型“IntrinsicAttributes & { children?: ReactNode; }”。 类型“IntrinsicAttributes & { children?: ReactNode; }”上不存在属性“columns”。ts(2322)

这个错误意味着你在使用 EditableProTable 时,没有正确地传递 columns 属性,导致类型检查失败。

为了解决这个问题,你需要将 React.FC 改为具有 Props 属性的接口,并在该接口中定义 columnseditable 的类型。然后将该接口作为泛型参数传递给 EditableProTable 组件。

以下是一个修正后的代码示例:

import React from 'react';
import { EditableProTable, ProColumns } from '@ant-design/pro-table';

interface ConfigCoreTableProps {
  columns: ProColumns<CoreRoleConfigListItem>[];
  editable: {
    type: string;
    editableKeys: Key[];
    onSave: (rowKey: any, row: any) => Promise<void>;
    onChange: Dispatch<...>;
    actionRender: (row: any, config: any, defaultDoms: any) => any[];
  };
}

const ConfigCoreTable: React.FC<ConfigCoreTableProps> = ({ columns, editable, ...props }) => {
  return (
    <EditableProTable
      {...props}
      columns={columns}
      editable={editable}
      rowKey='id'
      options={false}
      scroll={{ y: 600 }}
      cardProps={{ bodyStyle: { padding: 0 } }}
      recordCreatorProps={false}
      bordered
    />
  );
};

export default ConfigCoreTable;

在这个示例中,我们定义了一个 ConfigCoreTableProps 接口,它包含了 columnseditable 的类型。然后,我们将 ConfigCoreTable 组件定义为 React.FC<ConfigCoreTableProps>,并使用 columnseditable 属性传递给 EditableProTable 组件。

通过这种方式,我们可以确保传递给 EditableProTable 组件的属性类型正确,避免类型错误。

React 类型错误: 'columns' 属性不存在,如何解决?

原文地址: https://www.cveoy.top/t/topic/n5eU 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录