繁体   English   中英

未捕获的错误:元素类型无效:期望一个字符串(对于内置组件)或类/函数(对于复合组件)但得到:对象

[英]Uncaught Error: Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: object

Reactjs上下文提供程序错误

我收到以下错误

invariant.js:42 Uncaught Error:元素类型无效:期望一个字符串(对于内置组件)或一个类/函数(对于复合组件)但得到:object。

这是我的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")
);

这是./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>
    )
  }
}

这是在React 16.3.2上。 在许多情况下,错误是由于默认vs命名导出,这似乎不是:

  1. 未捕获的错误:不变违规:元素类型无效:期望一个字符串(对于内置组件)或类/函数但得到:对象
  2. 未捕获错误:元素类型无效:期望一个字符串(对于内置组件)
  3. 元素类型无效:期望字符串(对于内置组件)或类/函数

您可能正在使用react@16.3与之前不支持上下文的react-dom版本(例如16.2)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 错误:元素类型无效:预期为字符串(对于内置组件)或类/函数(对于复合组件)但得到:ReactJS 中的对象 错误:元素类型无效:应为字符串(对于内置组件)或类/函数(对于复合组件)但得到:对象 错误:元素类型无效:应为字符串(对于内置组件)或类/函数(对于复合组件)但得到:对象 NextJS:错误 - 元素类型无效:需要一个字符串(对于内置组件)或一个类/函数(对于复合组件)但得到:object 反应错误:元素类型无效:期望使用字符串(对于内置组件)或类/函数(对于复合组件),但得到:对象 × 错误:元素类型无效:需要一个字符串(对于内置组件)或一个类/函数(对于复合组件)但得到:object Webpack:错误:元素类型无效:需要一个字符串(对于内置组件)或一个类/函数(对于复合组件)但得到:object 未捕获的错误:不变违规:元素类型无效:需要一个字符串(对于内置组件)或一个类/函数但得到:object 未捕获的错误:元素类型无效:需要一个字符串(对于内置组件)或一个类/函数但得到:对象 未捕获的错误:不变违规:元素类型无效:需要内置组件或类/函数的字符串但得到:object
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM