React createElement错误“type is invalid - expected a string got object”

问题描述:

我在一个反应​​项目中遇到了这个问题。我正在使用rc-upload软件包来上传反应中的文件。代码是如下:React createElement错误“type is invalid - expected a string got object”

import React, { Component } from 'react'; 
import logo from './logo.svg'; 
import './App.css'; 
const Upload = require('rc-upload'); 

class App extends Component { 
constructor(props) { 
super(props); 
this.uploaderProps = { 
    action: '/upload/', 
    data: { user_id: 1 }, 
    headers: { 
     Authorization: `Bearer abcdef`, 
    }, 
    multiple: false, 
    beforeUpload(file) { 
     console.log(file); 
    }, 
    onStart: (file) => { 
     // console.log('onStart', file.name); 
    }, 
    onSuccess(result) { 
     console.log(result); 
    }, 
    onProgress(step, file) { 
     console.log('Progress: ', Math.round(step.percent), file.name); 
    }, 
    onError(err) { 
     // Show response data with close button in modal body 
     console.log('onError', err); 
    } 
    }; 
} 
render() { 

    return (
    <div className="App"> 
    <div className="App-header"> 
     <img src={logo} className="App-logo" alt="logo" /> 
     <h2>Welcome to React</h2> 
    </div> 
    <p className="App-intro"> 
     To get started, edit <code>src/App.js</code> and save to reload. 
    </p> 
    <Upload {...this.uploaderProps}>Choose File</Upload> 
    </div> 
); 
} 
} 
export default App; 

该代码在[email protected][email protected]和反应或反应的脚本的dev的依赖关系的工作。几个月前我通过create-react-app创建了反应应用程序。现在我用create-react-app创建了一个新应用程序,其中安装了[email protected][email protected]

因此,当我在新项目中运行上述代码比它显示此错误。

React.createElement:类型无效 - 预期字符串( 内置组件)或类/功能(复合组件) 但得到:对象

我弄清楚它从下面的代码来:

<Upload {...this.uploaderProps}>Choose File</Upload> 

它工作在我以前的版本[email protected]的,但不是在[email protected]

如何解决此错误?这是版本错误还是其他依赖性错误?

问题与上载组件导入项目的方式有关。这可能是组件的错误。不知道这是否是有意的,但你需要像这样导入组件;

const Upload = require('rc-upload').default; 
// or 
import Upload from 'rc-upload'; 
+0

是的你是对的。这是关于导入的问题,在完成后我的问题得到解决。谢谢@Bunyamin –