我也看到过许多其他类似问题的帖子,但是我找不到解决此问题的有效方法。
背景知识:
我正在开发一个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)