2017-07-03 9 views
1

クラスコンポーネントのPropTypesのリストを定義しようとしています。このコンポーネントは、通常のDOM要素またはその小道具値としてwindowのいずれかを受け入れることができます。現在、私が持っている:PropTypesで有効な小道具としてウィンドウを含めるにはどうすればよいですか?

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を使用するコンポーネントのデフォルトは、次のエラーがスローされたときに次のような

Warning: Failed prop type: Invalid prop `container` supplied to `FooContainer`. 

を、使用するための有効なPropTypeは何ですか値がwindowのプロパティ?

PropTypes.instanceOf(window.constructor) 

これは小道具値として任意のWindowインスタンスを許可します:あなたは何ができるか

+0

おそらく 'PropTypes.instanceof(Window)'ですか? – Li357

+0

@AndrewLi、 'Window'は未定義です。代わりに' window'を試してみると 'Failed prop type: 'instanceof'の右辺が呼び出し可能ではありません。私は 'window'はインスタンス化できないと思いますか?または 'instanceof'メソッドを持っていません。 – haxxxton

+0

'instanceOf(window.constructor)'についてはどうですか? – Li357

答えて

0

oneOfTypeを使用してwindowオブジェクトのコンストラクタのインスタンスが含まれ、Windowです。

関連する問題