javascript - React.js 与 browserify 导入不起作用

标签 javascript reactjs

我正在学习 React.js,但无法使我的第一个组件渲染。我的项目如下所示:

javascript
  |
  --components
  |   |
  |   ---- searchbar.jsx
  |
  |    
  --app.jsx

searchbar.jsx:

export default class SearchBar extends React.Component {
    //some code

    render(){
       //some code
     }
}

app.jsx 看起来像这样。

import React from 'react';
import ReactDOM from 'react-dom';
import { SearchBar } from './components/searchbar.jsx';

ReactDOM.render(

        <App />
       ,
    document.getElementById('content')
);

class App extends React.Component {



    render() {
        <div>
            <SearchBar  placeHolder='search bar text'/>
        </div>
    }
}

编译和打包时没有错误。但是,当我运行它时,出现以下错误:

Warning: React.createElement: 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.
  printWarning  
  warning   
  createElement 
  1../components/searchbar.jsx  

当我将所有代码放入 app.jsx 中并且不使用导入时,一切都会正常工作并且搜索栏会显示..但我想将组件放在不同的文件中。那我该怎么做呢?

最佳答案

SearchBar 模块导出默认值,而不是命名导出(通过用大括号括起来,您需要命名导出)

您应该将 import { SearchBar } 更改为 import SearchBar

另外,App的声明应移至文件开头,应在使用前声明

关于javascript - React.js 与 browserify 导入不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41780233/

相关文章:

javascript - 如何识别字符串中的对

javascript - 如果父 hasClass() 则防止链接默认

javascript - 如何从 Google Picker API 获取多张选中的图片

reactjs - 测试重定向页面

javascript - 为什么重定向在 next.js 应用程序中不起作用?

javascript - 如何在 IE 11 中以兼容模式强制执行 iframe

javascript - 尽管更改了数据库规则,但将文件上传到 Firebase 存储仍会返回 403 错误

reactjs - Material UI + Nextjs : Drawer

javascript - reactjs 中的 render 和 return 有什么区别?

javascript - 使 React 图片库对 SEO 友好的策略