如何将 window 作为 PropTypes 的有效 prop 包含在内?

hax*_*ton 3 reactjs react-proptypes

我正在尝试为类组件定义 PropTypes 列表。该组件可以接受常规 DOM 元素或其windowprop 值。目前,我有:

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 />
        );
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,当组件默认用作window容器 prop 时,会抛出以下错误:

Warning: Failed prop type: Invalid prop `container` supplied to `FooContainer`.
Run Code Online (Sandbox Code Playgroud)

因此,用于值为 的属性的有效 PropType 是什么window

Li3*_*357 5

您可以做的是使用并包含对象构造oneOfType函数的实例:windowWindow

PropTypes.instanceOf(window.constructor)
Run Code Online (Sandbox Code Playgroud)

这将允许任何Window实例作为道具值。