Webpack 导入,default.a 不是构造函数

Nil*_*Nil 3 javascript nodes webpack

我知道这个问题已经在其他线程中解决了,但是提供的解决方案都不适用于我。我正在尝试将另一个项目中的类导入到一个新的 react-create-app 项目中,但某些导入因

类型错误:react__WEBPACK_IMPORTED_MODULE_0___default.a 不是构造函数

这是有问题的课程之一:

import React from 'react';
import Component from 'react';
import PropTypes from 'prop-types';
import shallowCompare from 'react-addons-shallow-compare';

class Pdf extends Component {
  constructor(props) {
    super(props);
    this.handlesOnTrashClick = this.handlesOnTrashClick.bind(this);
  }

  shouldComponentUpdate(nextProps, nextState) {
    return shallowCompare(this, nextProps, nextState);
  }

  render() {
    const {name, size} = this.props;
    return (
      <li style={{cursor:'pointer'}}>
        <span className="mailbox-attachment-icon">
          <i className="fa fa-file-pdf-o"></i>
        </span>
        <div className="mailbox-attachment-info">
          <span
            className="mailbox-attachment-name">
            {name}
          </span>
          <span className="mailbox-attachment-size">
            {size}
            <button
              className="btn btn-default btn-xs pull-right"
              onClick={this.handlesOnTrashClick}>
              <i className="fa fa-trash-o"></i>
            </button>
          </span>
        </div>
      </li>
    );
  }

  handlesOnTrashClick(evt) {
    evt.preventDefault();
    const { onTrashClick, name } = this.props;
    onTrashClick(name);
  }
}

Pdf.propTypes = {
  name: PropTypes.string.isRequired,
  filePath: PropTypes.string,
  size: PropTypes.any.isRequired,
  onTrashClick: PropTypes.func
};

Pdf.defaultProps = {
  filePath: ''
};

export default Pdf;
Run Code Online (Sandbox Code Playgroud)

进口:

import React, { Component } from 'react'; //working
import PropTypes from 'prop-types'; //working
import { appConfig } from '../../../config'; //working

import Pdf from './pdf/Pdf'; //not working
Run Code Online (Sandbox Code Playgroud)

欢迎任何想法,谢谢。

rav*_*l91 9

问题来了,

import Component from 'react';
Run Code Online (Sandbox Code Playgroud)

你应该Component像这样导入,

import { Component } from 'react';
Run Code Online (Sandbox Code Playgroud)

  • @Nil 只需将第一行更改为“import React, {Component} from 'react';” (2认同)