修改:回答
我已经在youtube上关注了这两个教程(目前没有太多),但它们都不适用于我,它在index.js中向Provider发送了错误 :
元素类型无效:需要一个字符串(用于内置组件) 或类/函数(对于复合组件)但得到: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();
我尝试/检查过:
仔细检查我已安装16.3.1
将上下文置于<BrowserRouter>
尝试{上下文}与上下文
重新安装NPM软件包
在createContext()中放入{text:'ok'}
我尝试了'create-react-context'但仍然遇到了同样的错误,也许这是一个线索?我不确定
尝试了在教程
其他一些我不会忘记的东西。
编辑:以下答案
答案 0 :(得分:16)
检查你是否有反应16.3.1
答案 1 :(得分:3)
我明白了。这是一个菜鸟错误,但我需要安装react-dom@16.3.*
,安装react 16.3。*是不够的。如果其他人有错误消息:
元素类型无效:需要一个字符串(用于内置组件) 或类/函数(对于复合组件)但得到:object。
这可能是原因 - 您有一个未完全更新的软件包。