【发布时间】:2018-06-04 08:02:27
【问题描述】:
元素类型无效:应为字符串(用于内置组件) 或类/函数(用于复合组件)但得到:未定义。你 可能忘记从定义它的文件中导出您的组件, 或者您可能混淆了默认导入和命名导入。
查看
App的渲染方法。
App.js
import React, {Component, Fragment} from 'react';
import {Typeahead, Control} from 'react-typeahead';
import {FormGroup} from 'react-bootstrap';
export default class App extends Component {
constructor(props) {
super(props);
this.state = {
multiple: false
}
}
render() {
const {multiple} = this.state;
return (
<Fragment>
<Typeahead
labelKey="name"
multiple={multiple}
options={[
'Waylon Dalton',
'Justine Henderson',
'Abdullah Lang',
'Marcus Cruz',
'Thalia Cobb',
'Mathias Little',
'Eddie Randolph',
'Angela Walker',
'Lia Shelton',
'Hadassah Hartman',
'Joanna Shaffer',
'Jonathon Sheppard'
]}
placeholder="Choose a state..."
/>
<FormGroup>
<Control
checked={multiple}
onChange={(e) => this.setState({multiple: e.target.checked})}
type="checkbox">
Multi-Select
</Control>
</FormGroup>
</Fragment>
)
}
}
index.js
import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import App from './App';
ReactDOM.render(<App />, document.getElementById('root'));
我使用 CRA 创建了这个项目。此错误表明我的导入/导出有问题,但我在两个文件的导入/导出中没有发现任何问题,错误集中在 App.js 渲染函数和 index.js 文件的渲染上。我也检查了here,但它对我不起作用,有人可以帮助我。
【问题讨论】:
-
我认为您需要在APP中的return()内至少定义空div
-
@FadiAboMsalam 试过,它不起作用。
-
好的,然后将 div 保留在渲染中并尝试删除 react-typeahead 和 react-bootstrap 这应该可以正常工作
-
顺便说一句,你在用 react-router-dom 吗?你用的是哪个版本
-
不,我没有使用 react-router-dom,16.4。好的,但我想使用 react-typeahead 和 bootstrap APIs
标签: javascript reactjs