React 16.3上下文适用于Web,但不适用于React Native

时间:2018-03-31 20:01:47

标签: reactjs react-native react-native-web react-context

我使用新的React 16.3上下文API实现了一些功能。这在浏览器中工作得很好,但是React Native中的相同代码永远不会起作用(使用react-native-web编译到浏览器和一个在尝试添加上下文之前工作得很好的expo移动应用程序)。当它失败时,它会记录错误:

  

不变违规:元素类型无效:期望一个字符串(用于内置组件)或一个类/函数(用于复合组件)但得到:object。

通常这意味着我搞砸了某个地方的导入/导出默认/导出,但在这种情况下,它们似乎是有序的。仅当我尝试使用createContext()组件时才会出现此错误。当我创建提供者时,无论我是否有消费者,都会发生这种情况。

Root.js

export const RootContext = React.createContext();

export default class Root extends React.Component {
    render() {
        return (
            <View>
                <RootContext.Provider value={'testContextValue'}>
                    <ExampleChildElement />
                </RootContext.Provider>
            </View>
        );
    }
}

ExampleChildElement.js

import { RootContext } from '../Root.js'

export class ExampleChildElement extends React.Component {
    render() {
        return (
            <RootContext.Consumer>
                {rootContext => 
                   <View />
                }
            </RootContext.Consumer>
        );
    }
}

我在这里做错了什么?

0 个答案:

没有答案