【问题标题】:Cannot read property '__reactAutoBindPairs' of undefined - React.js无法读取未定义的属性“__reactAutoBindPairs”-React.js
【发布时间】:2016-11-06 12:11:20
【问题描述】:

我正在尝试使用 Coffeescript 和 Node.js 在 React 中创建一个简单的组件。但是,它不断抛出此错误:

Cannot read property '__reactAutoBindPairs' of undefined

这是我的代码:

index.coffee:

express = require('express')
JSX     = require('node-jsx').install()
React   = require('react')
TestApp = require('../components/Test.react')
router  = express.Router()

# home page
router.get '/', (req, res, next) ->
  React.renderComponent (TestApp {}), document.getElementById('test')
  res.render 'index', title: 'Example'

module.exports = router

Test.react.coffee:

React = require('react')

TestApp = React.createClass
    render: ->
      p "Hello!"

module.exports = TestApp

index.jade

extends layout

block content
  h1= title
  #test 
  p Welcome to #{title}

任何帮助将不胜感激。谢谢!

【问题讨论】:

    标签: javascript node.js reactjs coffeescript


    【解决方案1】:

    我认为你需要做几件事:

    1. 安装 ReactDOM 包 (npm install react-dom)。
    2. 需要 ReactDOM。
    3. 将组件的require() 语句包装在React.createFactory() 中。
    4. 使用ReactDOM.render() 而不是React.renderComponent() 呈现组件。

    观察:

    express  = require('express')
    JSX      = require('node-jsx').install()
    React    = require('react')
    ReactDOM = require('react-dom')
    TestApp  = React.createFactory(require('../components/Test.react'))
    router   = express.Router()
    
    # home page
    router.get '/', (req, res, next) ->
      ReactDOM.render (TestApp {}), document.getElementById('test')
      res.render 'index', title: 'Example'
    
    module.exports = router
    

    请参阅the React blog 了解说明。

    【讨论】:

    • 第 3 步是非常重要的一步。我没有使用它,在修改代码后,该应用程序工作了。为此+1 :)
    猜你喜欢
    • 2019-12-30
    • 1970-01-01
    • 2017-11-10
    • 2018-02-27
    • 1970-01-01
    • 1970-01-01
    • 2021-11-08
    • 2021-01-01
    • 2021-06-03
    相关资源
    最近更新 更多