反应上下文API:如何将数据从根组件传递到上下文?

时间:2018-09-15 13:46:56

标签: javascript reactjs

对于返回<Provider>的根组件的示例,我得到了一些需要保存在上下文中的数据。如何正确地做呢?

我可以将它作为道具传递给孩子(消费者),在这里,在孩子中,调度更新上下文的动作:

class App extends Component {

    getWindowSize = (window, document) => {...}

    render() {
        let windowSize = this.getWindowSize(window, document)
        return (            
            <Provider>
                <div className="App" >
                    <BtnInput />
                    <Canvas windowSize={windowSize}/>
                </div>                
            </Provider>                
        )
    }
}

这没关系,因为<Canvas>需要此数据。

但是,如果我有一个需要知道windowSize的深层嵌套组件,那么它的(全部)父级根本不需要知道它。在这种情况下如何将windowSize传递给上下文?

windowSize这里只是一个示例,它可以是我需要保存在上下文中的任何其他数据。问题是关于使用react contex api并直接从<Provider>或呈现<Provider>的组件发送数据。

0 个答案:

没有答案