【问题标题】:Incorrect export method with React modulesReact 模块的导出方法不正确
【发布时间】:2016-10-05 11:02:27
【问题描述】:

我为什么会得到

React.createElement:类型不应为 null、未定义、布尔值或数字。

未捕获的不变违规:元素类型无效:需要字符串(对于内置组件)或类/函数(对于复合组件)但得到:对象。检查Main的渲染方法。

尝试从文件中导入我的模块时?我有以下结构:

  • app.cjsx
    • 组件/
    • index.coffee
    • 应用/
      • App.cjsx
      • index.coffee

app.cjsx:

React = require('react')
ReactDOM = require('react-dom')
injectTapEventPlugin = require('react-tap-event-plugin')
{getMuiTheme, MuiThemeProvider} = require('material-ui/styles')
App = require('./components/App')
injectTapEventPlugin()

Main = React.createClass
  render: ->
    <MuiThemeProvider muiTheme={getMuiTheme()}>
      <App />
    </MuiThemeProvider>

ReactDOM.render(
  <Main />,
  document.getElementById('app')
)

组件/index.coffee:

exports.App = require('./App')

components/App/index.coffee:

require('coffee-react/register')
module.exports = require('./App.cjsx')

components/App/App.cjsx:

React = require('react')
AppBar = require('material-ui/AppBar')
{Card, CardHeader, CardText} = require('material-ui/Card')

exports.default = React.createClass
  render: ->
    <AppBar title='Hello, world!' />

我正在使用coffee-react v5.0.0coffee-react-transform v4.0.0

【问题讨论】:

  • exports.default 上的components/App/App.cjsx 更改为module.exports 使coffee-react 创建一个名为exports 的类

标签: reactjs coffeescript


【解决方案1】:

好吧,经过数小时绞尽脑汁想为什么我的导出不起作用后,我发现错误不在我的导出中,而是在我导入 Material UI AppBar 的方式上:

AppBar = require('material-ui/AppBar')

所以我改成

{AppBar} = require('material-ui')

【讨论】:

    猜你喜欢
    • 2015-08-17
    • 1970-01-01
    • 2020-06-11
    • 1970-01-01
    • 1970-01-01
    • 2020-05-26
    • 2020-02-16
    • 2014-05-13
    • 2020-03-15
    相关资源
    最近更新 更多