Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/53.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Rails和React-React.createClass/React.createReactClass不是函数_Javascript_Ruby On Rails_Ruby_Reactjs_React Native - Fatal编程技术网

Javascript Rails和React-React.createClass/React.createReactClass不是函数

Javascript Rails和React-React.createClass/React.createReactClass不是函数,javascript,ruby-on-rails,ruby,reactjs,react-native,Javascript,Ruby On Rails,Ruby,Reactjs,React Native,我试图在Rails应用程序中使用React。我使用的是Rails 5.2.1和Ruby 2.4.1。我还安装了react railsgem版本2.4.4,并在2.4.7中进行了尝试。我有一个 站点\u controller.rb class SitesController < ApplicationController def index end end 这似乎是一个版本问题。我必须使用以下语法才能使其正常工作 class Main extends React.Componen

我试图在Rails应用程序中使用React。我使用的是Rails 5.2.1和Ruby 2.4.1。我还安装了react railsgem版本2.4.4,并在2.4.7中进行了尝试。我有一个

站点\u controller.rb

class SitesController < ApplicationController

  def index
  end
end

这似乎是一个版本问题。我必须使用以下语法才能使其正常工作

class Main extends React.Component{
  render() {
    return (
      <div>
        <Header />
      </div>    
    )
  }
}
类主扩展React.Component{
render(){
返回(
)
}
}

相关文档如下:

通常,您会将React组件定义为普通JavaScript类:

class Greeting extends React.Component {
  render() {
    return <h1>Hello, {this.props.name}</h1>;
  }
}
类问候语扩展了React.Component{
render(){
返回Hello,{this.props.name};
}
}
如果尚未使用ES6,则可以使用create react class模块:

var createReactClass = require('create-react-class');
var Greeting = createReactClass({
  render: function() {
    return <h1>Hello, {this.props.name}</h1>;
  }
});
var createReactClass=require('create-react-class');
var Greeting=createReactClass({
render:function(){
返回Hello,{this.props.name};
}
});
ES6类的API与createReactClass()类似,但有几个例外

  Uncaught TypeError: React.createReactClass is not a function
at _header.self- 
(anonymous) @ _header.self- 
 f50926322cbfc16ac78826d5bfa8a3f192af29cac5125c3955f9bef3355b54d9.js? 
  body=1:1
_main.self-1ed2e3a6d11c77d50ab4dd84f59f619d3ae85141ee36949c34885bb6b90992c4.js?body=1:1 Uncaught TypeError: React.createClass is not a function
at _main.self-1ed2e3a6d11c77d50ab4dd84f59f619d3ae85141ee36949c34885bb6b90992c4.js?body=1:1
(anonymous) @ _main.self-1ed2e3a6d11c77d50ab4dd84f59f619d3ae85141ee36949c34885bb6b90992c4.js?body=1:1
  react_ujs.self-eb4e9994228856e343ab49d1aed6c23046bf4308ea6d46395e5c39170ab3e56f.js?body=1:313 Uncaught Error: Cannot find component: 'Main'. Make sure your component is available to render.
    at Object.mountComponents (react_ujs.self-eb4e9994228856e343ab49d1aed6c23046bf4308ea6d46395e5c39170ab3e56f.js?body=1:313)
    at HTMLDocument.ReactRailsUJS.handleMount (react_ujs.self-eb4e9994228856e343ab49d1aed6c23046bf4308ea6d46395e5c39170ab3e56f.js?body=1:350)
    at Object.e.dispatch (turbolinks.self-569ee74eaa15c1e2019317ff770b8769b1ec033a0f572a485f64c82ddc8f989e.js?body=1:6)
    at r.notifyApplicationAfterPageLoad (turbolinks.self-569ee74eaa15c1e2019317ff770b8769b1ec033a0f572a485f64c82ddc8f989e.js?body=1:7)
    at r.pageLoaded (turbolinks.self-569ee74eaa15c1e2019317ff770b8769b1ec033a0f572a485f64c82ddc8f989e.js?body=1:7)
    at turbolinks.self-569ee74eaa15c1e2019317ff770b8769b1ec033a0f572a485f64c82ddc8f989e.js?body=1:6
class Main extends React.Component{
  render() {
    return (
      <div>
        <Header />
      </div>    
    )
  }
}
class Greeting extends React.Component {
  render() {
    return <h1>Hello, {this.props.name}</h1>;
  }
}
var createReactClass = require('create-react-class');
var Greeting = createReactClass({
  render: function() {
    return <h1>Hello, {this.props.name}</h1>;
  }
});