React 16.3.* context Provider Err: Expected string or class/func 但得到:对象
React 16.3.* context Provider Err: Expected string or class/func but got: Object
编辑:在下面回答
我已经在 youtube 上学习了这两个教程(目前没有太多)但是 none 对我有用,它向我发送了来自提供商的 错误index.js:
Element type is invalid: expected a string (for built-in components)
or a class/function (for composite components) but got: object.
我的代码
Context.js 文件:
import React from 'react'
export const Context = React.createContext();
index.js
import React from 'react';
import ReactDOM from 'react-dom';
import {BrowserRouter} from 'react-router-dom'
import { ApolloClient } from 'apollo-client'
import { HttpLink } from 'apollo-link-http'
import { InMemoryCache } from 'apollo-cache-inmemory'
import { ApolloProvider } from 'react-apollo';
import { Context } from './Context'
const client = new ApolloClient({
link: new HttpLink({ uri: process.env.API_URL }),
cache: new InMemoryCache()
})
ReactDOM.render(
<Context.Provider value={{text: 'ok'}}>
<BrowserRouter>
<ApolloProvider client={client}>
<App />
</ApolloProvider>
</BrowserRouter>
</Context.Provider>
, document.getElementById('root'));
registerServiceWorker();
我tried/checked:
仔细检查我安装了 16.3.1
将上下文置于 <BrowserRouter>
之内或之外
尝试了 {Context} 与 Context
正在重新安装 NPM 包
在 createContext()
中放入 { text: 'ok' }
我尝试了'create-react-context',但仍然出现同样的错误,也许这是一个线索?我不确定
尝试了在教程中有效的 react@16.3.0-alpha.0
其他一些我没有忘记的东西。
编辑:下面的答案
检查你是否有react-dom 16.3.1
我明白了。这是一个菜鸟错误,但是 我需要安装 react-dom@16.3.*
,安装 react 16.3.* 是不够的。如果其他人有错误消息:
Element type is invalid: expected a string (for built-in components)
or a class/function (for composite components) but got: object.
这可能是原因 - 您的软件包未完全更新。
编辑:在下面回答
我已经在 youtube 上学习了这两个教程(目前没有太多)但是 none 对我有用,它向我发送了来自提供商的 错误index.js:
Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: object.
我的代码 Context.js 文件:
import React from 'react'
export const Context = React.createContext();
index.js
import React from 'react';
import ReactDOM from 'react-dom';
import {BrowserRouter} from 'react-router-dom'
import { ApolloClient } from 'apollo-client'
import { HttpLink } from 'apollo-link-http'
import { InMemoryCache } from 'apollo-cache-inmemory'
import { ApolloProvider } from 'react-apollo';
import { Context } from './Context'
const client = new ApolloClient({
link: new HttpLink({ uri: process.env.API_URL }),
cache: new InMemoryCache()
})
ReactDOM.render(
<Context.Provider value={{text: 'ok'}}>
<BrowserRouter>
<ApolloProvider client={client}>
<App />
</ApolloProvider>
</BrowserRouter>
</Context.Provider>
, document.getElementById('root'));
registerServiceWorker();
我tried/checked:
仔细检查我安装了 16.3.1
将上下文置于
<BrowserRouter>
之内或之外
尝试了 {Context} 与 Context
正在重新安装 NPM 包
在 createContext()
中放入 { text: 'ok' }
我尝试了'create-react-context',但仍然出现同样的错误,也许这是一个线索?我不确定
尝试了在教程中有效的 react@16.3.0-alpha.0
其他一些我没有忘记的东西。
编辑:下面的答案
检查你是否有react-dom 16.3.1
我明白了。这是一个菜鸟错误,但是 我需要安装 react-dom@16.3.*
,安装 react 16.3.* 是不够的。如果其他人有错误消息:
Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: object.
这可能是原因 - 您的软件包未完全更新。