2017-02-20 102 views
1

我试图将一行导出const我的<SearchForm/>,但由于某种原因它出错了。反应:无法导出常量

这里是我的代码

import React from 'react'; 

export const SearchForm = props => (
    <form className="search-form" onSubmit={props.onSubmit}> 
    <input placeholder="Username" type="text" value={props.value} onChange={props.onChange}></input> 
    <input type="submit" value="Search"></input> 
    </form>) 

SearchForm.propTypes = { 
    onSubmit: React.PropTypes.func.isRequired, 
    value: React.PropTypes.string.isRequired, 
    onChange: React.PropTypes.func.isRequired 
} 

React.createElement:类型无效 - 预期字符串(内置组件)或类/功能(复合组件),但得到:未定义。您可能忘记从您定义的文件中导出组件。检查渲染方法Home

这很好,如果我在底部做const SearchForm = props => .....export default <SearchForm/>。我也试过export default SearchForm...和其他变化。

我跟着一个egghead.io教程和使用完全相同的语法的家伙,所以我不知道什么是错的?下面是他的代码

enter image description here

回答

0

你怎么导入您的组件? 你应该尝试导出后添加默认:

export default class... 
+0

你的问题上导入让我玩它,并设法解决它。我正在做'从...导入SearchForm,并将其更改为'从...中导入{SearchForm}并使用'export const SearchForm = props =>'将其导出... – Apswak

+0

在reactjs中,“应该”每个文件只声明一个组件。所以我认为最好添加default关键字并删除导入中的括号。 – Kornflexx

+0

这将是我的首选选项,但它是说意外的令牌常量..不知道为什么 – Apswak

5

我猜你目前使用的

import SearchForm from './SearchForm'; 

但是因为你的出口

export const SearchForm = props => (

所以,你必须使用该语法

import {SearchForm} from './SearchForm'; 

总之:

当出口默认情况下,进口无{}

出口时不默认情况下,进口与{}