[英]Uncaught Error: Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: object
Reactjs Context Provider Error Reactjs上下文提供程序错误
I'm getting the following error 我收到以下错误
invariant.js:42 Uncaught Error: Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: object.
invariant.js:42 Uncaught Error:元素类型无效:期望一个字符串(对于内置组件)或一个类/函数(对于复合组件)但得到:object。
Here is my app.js
这是我的
app.js
import React from 'react';
import ReactDOM from 'react-dom';
import { UserProvider } from "./lib/user.js"
const App = () => <UserProvider></UserProvider>
ReactDOM.render(
<App />,
document.getElementById("app")
);
and here is the ./lib/user.js
: 这是
./lib/user.js
:
import React from 'react'
export const UserContext = React.createContext({
user: null,
logIn: ((token, user) => {}),
logOut: (() => {})
})
export class UserProvider extends React.Component {
constructor(props) {
super(props)
this.logIn = (token, user) => {
setToken(token)
this.setState(state => ({user: user}))
}
this.logOut = (client) => {
clearToken()
this.setState(state => ({user: null}))
client.resetStore()
client.cache.reset()
}
this.state = {
user: null,
logIn: this.logIn,
logOut: this.logOut
}
}
render() {
console.log(<div></div>)
console.log(<UserContext.Provider/>)
return (
<UserContext.Provider value={this.state}>
<p>hi</p>
</UserContext.Provider>
)
}
}
This is on React 16.3.2. 这是在React 16.3.2上。 There are many situations where the error is due to default vs named exports, which this is not appear to be:
在许多情况下,错误是由于默认vs命名导出,这似乎不是:
您可能正在使用react@16.3
与之前不支持上下文的react-dom
版本(例如16.2)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.