在Ember项目中使用React js并使用'npm:<library_name>'中的import导入库会产生意外错误

时间:2018-11-15 16:05:35

标签: javascript reactjs ember.js

我也看到过许多其他类似问题的帖子,但是我找不到解决此问题的有效方法。

背景知识:

我正在开发一个Ember应用程序,其中React被用来开发新组件(我们正在使用React替换旧的余烬代码)。

到目前为止,一切正常,我们能够在Ember中创建和使用React组件而没有任何问题。

问题:

我正在编写的React组件之一需要使用范围日期选择器,并且我发现有几个实用程序可以做到这一点。 我已经从组件中删除了所有不必要的代码:

import React from 'npm:react';
import DayPickerInput from 'npm:react-day-picker/DayPickerInput';

export default class ContractDetails extends React.Component {

  constructor(props) {
    super(props);
  }

  render() {
    return (
      <div>
        <DayPickerInput/>
      </div>
    );
  }
}

每次尝试渲染它时,都会出现以下错误:

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

在阅读其他帖子时,我试图替换:

import DayPickerInput from 'npm:react-day-picker/DayPickerInput';

使用:

import {DayPickerInput} from 'npm:react-day-picker/DayPickerInput';

但是我得到了类似的结果(请注意,错误现在表明它得到的是未定义而不是对象):

Error: Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: undefined. You likely forgot to export your component from the file it's defined in. Check the render method of `ContractDetails`.

防止出现错误的唯一方法是使用:

<DayPickerInput.default/>

但是,这会导致库css出现问题。

我试图用许多其他库替换该库,但是我总是遇到相同的错误,因此我要排除库本身内的错误。

您是否有任何提示为什么我会收到此错误?

我正在使用最新的React版本(16.6.3)

0 个答案:

没有答案