我正在使用 React 的新上下文 api (v16.x)。
我做了一个简单的测试应用程序以确保我理解它:
const MyContext = React.createContext();
const Child = () => (
<MyContext.Consumer>
{value => value}
</MyContext.Consumer>
)
const Parent = () => (
<MyContext.Provider value={"Working"}>
<Child/>
</MyContext.Provider>
)
<Parent>
即使使用和之间的中间组件,这也可以正常工作<Child>
。
但是,下面的组件会产生以下错误:“元素类型无效:需要字符串(对于内置组件)或类/函数(对于复合组件)但得到:未定义”(注意:我正在使用材料- ui库)
let NavigationPanel = (props) => (
<DisabledContext.Provider value={props.disabled}>
<InstructionsContext.Provider value={props.onOpenInstructions}>
<Hidden mdUp><DrawerNavigationPanel data={props.data}/></Hidden>
<Hidden smDown><StaticNavigationPanel data={props.data}/></Hidden>
</InstructionsContext.Provider>
</DisabledContext.Provider>
)
为什么会发生这种情况?