我正在尝试为类组件定义PropTypes列表。组件可以接受常规DOM元素或window
作为其prop值。目前,我有:
class FooContainer extends Component {
static propTypes = {
container: PropTypes.oneOfType([
PropTypes.element,
PropTypes.instanceOf(Element),
]),
};
static defaultProps = {
container: window,
};
constructor(props: any) {
super(props);
}
render() {
return (
<div />
);
}
}
但是,当组件默认使用window
作为容器prop时,会抛出以下错误:
Warning: Failed prop type: Invalid prop `container` supplied to `FooContainer`.
因此,有效的PropType用于值为window
的属性?
答案 0 :(得分:1)
您可以使用oneOfType
并包含window
对象的构造函数Window
的实例:
PropTypes.instanceOf(window.constructor)
这将允许任何Window
实例作为道具值。