如何将 window 作为有效道具包含在 PropTypes 中?
How do I include window as a valid prop with PropTypes?
我正在尝试为 class 组件定义我的 PropTypes 列表。该组件可以接受常规 DOM 元素或 window
作为其属性值。目前,我有:
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
作为container prop时,会抛出如下错误:
Warning: Failed prop type: Invalid prop `container` supplied to `FooContainer`.
因此,用于 属性 且值为 window
的有效 PropType 是什么?
你可以做的是使用 oneOfType
并包含 window
对象构造函数的实例,Window
:
PropTypes.instanceOf(window.constructor)
这将允许任何 Window
实例作为道具值。
我正在尝试为 class 组件定义我的 PropTypes 列表。该组件可以接受常规 DOM 元素或 window
作为其属性值。目前,我有:
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
作为container prop时,会抛出如下错误:
Warning: Failed prop type: Invalid prop `container` supplied to `FooContainer`.
因此,用于 属性 且值为 window
的有效 PropType 是什么?
你可以做的是使用 oneOfType
并包含 window
对象构造函数的实例,Window
:
PropTypes.instanceOf(window.constructor)
这将允许任何 Window
实例作为道具值。