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';
是的你是对的。这是关于导入的问题,在完成后我的问题得到解决。谢谢@Bunyamin –