如图,想要实现懒加载,却报错了。
有人遇到过这种问题吗?
刚好遇到...,挖一下坟
import React from 'react';
export interface IDemoProps {}
export interface IDemoState {
A?: keyof JSX.IntrinsicElements | any;
}
class Demo extends React.PureComponent<IDemoProps, IDemoState> {
public state: IDemoState = {};
constructor(props:IDemoProps) {
super(props);
this.state = {
A: null
}
}
render() {
const { A } = this.state;
return (
<div>
{A ? <A /> : null}
</div>
)
}
}
如果你跟我一样,正在迁移旧项目,.tsx 中需要引用 .js 组件,可以临时这样处理:
import Button from '../components/Button';
const ButtonX: React.FC<any> = Button as any;
const Demo = () => {
return <ButtonX />
}
这样
import A from './a'
// ...
state: { ComponentA: typeof A | null } = { a: null }
// ...
8 回答5.8k 阅读✓ 已解决
9 回答9.2k 阅读
6 回答4.7k 阅读✓ 已解决
5 回答3.5k 阅读✓ 已解决
4 回答7.9k 阅读✓ 已解决
7 回答9.8k 阅读
5 回答7.1k 阅读✓ 已解决
我的理解是:A必须是个类,或函数, 返回JSX Element,因为jsx需要是个JSX Element。