我有一个react组件,我们称他为ReactContainer。
ReactContainer包含一些元素,其中一个是MyReactBox,一个是ReactInnerContainer(下面的代码示例)。

我的问题是,如果使用requestFullScreen API将ReactInnerContainer中的一个元素放到全屏状态,则尽管MyReactBox具有CSS zIndex属性到最大可能值,但它会覆盖MyReactBox。

export default class ReactContainer extends React.Component {
    render() {
        return (
            <div>
                <MyReactBox />
                <br />
                <ReactInnerContainer />
            </div>
        );
    }
}

export default class ReactInnerContainer extends React.Component {

    handleFullScreenClick() {
        this.refs.innerDiv.webkitRequestFullscreen();
    }

    render() {
        return (
            <div ref="innerDiv">
                /* Some stuff here */
            </div>
        );
    }
}


我希望尽管innerDiv处于全屏状态,但MyReactBox仍将显示在屏幕的前面。如果我在innerDiv中渲染MyReactBox,那么它可以工作,但是我需要MyReactBox在ReactContainer中渲染。

任何想法如何解决问题?
非常感谢 :)

最佳答案

在父组件上调用webkitRequestFullscreen

export default class ReactContainer extends React.Component {

    handleFullScreen (){
         this.screen.webkitRequestFullscreen();
    }
    render() {
        return (
            <div ref={(screen) => {this.screen = screen }}>
                <MyReactBox />
                <br />
                <ReactInnerContainer handleFullScreen={this.handleFullScreen.bind(this)}/>
            </div>
        );
    }
}

export default class ReactInnerContainer extends React.Component {

    handleFullScreenClick() {
          this.props.handleFullScreen();
    }

    render() {
        return (
            <div >
                /* Some stuff here */
            </div>
        );
    }
}

09-19 20:13