更新:最新的Antd Design(4.21.3 已经更新了相关d.ts文件,npm install antd更新一下也能解决这个问题。新版有一些组件用法升级建议顺手改一下,比如
Menu组件
原因是react现在要求children必须在props里声明类型,但是目前的antdesign还没有为此进行更新(什么时候更了告诉我一声)
以Modal组件为例,当我们在Modal里包东西的时候就会如下报错:
不能将类型“{ children: Element; getContainer: () => HTMLElement; bodyStyle: { padding: number; minWidth: string; }; visible: boolean; footer: null; closable: false; width: number; centered: true; onCancel: () => { …; }; }”分配给类型“IntrinsicAttributes &
ModalProps
”。
类型“IntrinsicAttributes & ModalProps”上不存在属性“
children
”。
为了让程序正常跑起来,临时的解决方法是鼠标放在Modal上按住crtl同时点击鼠标左键,进入ModalProps的类型定义文件node_modules\antd\lib\modal\Modal.d.ts,自己加上
children?:ReactNode
就可以了,保存一下就不
报错了。其他组件也是一样的,认真看报文自行举一反三。
报错
事例
typtscript 组件中定义方法
报错
不能将
类型
“{ onRef: (ref: any) => void; }”分配给
类型
“
Int
rinsi
cA
ttribute
s &
Int
rinsi
cClassA
ttribute
s<Component<Omit<I
Pro
ps
, “form”>, any, any>> & Readonly<…> & Readonly<…>”。
类型
“
Int
rinsi
cA
ttribute
s
网上找了各种原因,有让添加
js
config.
js
on文件的,有让新建一个项目的,有的直接放弃ts的,哈哈哈,真的是千奇百怪都有,好吧,我这里就也出一种方法,不要用vscode了,使用WebStorm,哈哈哈,可能让你也想不到吧,但是真的有效啊:请看效果,就不
报错
了,撒花。
:package: 安装
yarn add
ant
-
design
-draggable-modal
注意:您必须使用
react
@16.8.0和
react
-dom@16.8.0或更高版本。
:hammer: 用法
import
React
, { useState , use
Ca
llback } from '
react
'
import { Button } from '
ant
d'
import { DraggableModal , DraggableModal
Pro
vider } from
在
React
中正确输入
children
pro
p 一开始可能会遇到一些困难。如果您尝试将它们输入为特定的
JS
X
类型
,您可能会遇到渲染子组件的问题。选择的悖论也存在问题,因为有多个可用选项来键入
children
道具。这可能会导致决策疲劳。在本文中,我将根据经验分享我推荐的解决方案。为了完整起见,我还将分享一些其他可能相关的方法。跳跃前进:
JS
X 中的孩子支持的子
类型
使用
Pro
ps
With
Children
类型
显式使用
React
Node
类型
。
遇到的问题
引入dynamic,动态加载自定义组件,出现 Type ‘{ key: number; artDetail: any; }’ is not assignable to type ‘
Int
rinsi
cA
ttribute
s & {
children
?:
React
Node; }’.
Pro
perty ‘artDetail’ does not exist on type ‘
Int
rinsi
cA
ttribute
s & {
children
?:
React
Node; }’.
报错
信息
不能将
类型
“{}”分配给
类型
“
Int
rinsi
cA
ttribute
s & Partial<{ title: string; }> & Omit<Readonly<{ title?: unknown; xLabels?: unknown; values?: unknown; } & { title: string; xLabels: string[]; values: any[]; } & {}> & VNode
Pro
ps
& AllowedComponent
Pro
ps
& ComponentCustomPr
在交互式监视模式下启动测试运行器。 有关更多信息,请参见关于的部分。
npm run build
构建生产到应用程序build文件夹。 它在生产模式下正确捆绑了
React
,并优化了构建以获得最佳性能。
最小化内部版本,文件名包含哈希值。 您的应用已准备好进行部署!
有关更多信息,请参见关于的部分。
npm run eject
注意:这是单向操作。 eject ,您将无法返回!
如果您对构建工具和配置选择不满意,则可以随时eject 。 此命令将从您的项目中删除单个生成依赖项。
而是将所有配置文件和传递依赖项(Webpack,Babel,ESL
int
等)直接
React
Router 4.0 (以下简称 RR4) 已经正式发布,它遵循
React
的设计理念,即万物皆组件。所以 RR4 只是一堆 提供了导航功能的组件(还有若干对象和方法),具有声明式(引入即用),可组合性的特点。http://www.jianshu.com/p/e3adc9b5f75c
RR4 本次采用单代码仓库模型架构(monorepo),这意味者这个仓库里面有若干相互独立的包
1.nzSeparator,分隔符自定义,默认“/”;
2.nzAutoGenerate,自动生成 Breadcrumb,默认false;eg:
使用 [nzAutoGenerate] 时,需要在路由类中定义 data:
path: '/path',
component: SomeComponent,
data: {
breadcrumb: 'Display Name' ...
1)分析问题:
Type '
XXX
' is not assignable to type 'Omit<WrappedComponent
Pro
ps
<any>, "
int
l">'.
子组件的
类型
好像有问题,且和
int
l国际化有关,去掉子组件的国际化和路由
2) 还是会
报错
报错
:
类型
“{ pageValue: pageValue_type | undefined; }”与
类型
“
Int
rinsi
cA
ttribute
s & { chil..