私はRails 5 gemで反応レールを使用する方法を理解しようとしています。React-Rails - 始める際の問題
現時点では、私はこの記事のチュートリアルに従おうとしています。 https://medium.com/technically-speaking/isomorphic-reactjs-app-with-ruby-on-rails-part-1-server-side-rendering-8438bbb1ea1c#.iwd44r60v
現在レンダリングするページを取得できません。投稿の代わりにapp_rolesを使用しますが、それ以外の場合はチュートリアルの手順に従っています。
私のアプリ/アセット/ javascripts/componentsフォルダに2つのファイルがあります。
app_role.js.jsxがあります
var AppRole = React.createClass({
render: function() {
return (
<div className="h2">
<AppRoleHeader app_role={this.props.app_role} />
<AppRoleContent app_role={this.props.app_role} />
</div>
);
}
});
var AppRoleHeader = React.createClass({
render: function() {
return (
<div className="label">
<h2>{this.props.app_role.title}</h2>
<div className="label">
By {this.props.app_role.title} – {this.props.app_role.created_at}
</div>
</div>
);
}
});
var AppRoleContent = React.createClass({
render: function() {
return (
<div className="label">
{this.props.app_role.display_name}
</div>
);
}
});
app_roles_list.js.jsxがあります
var AppRolesList = React.createClass({
getInitialState: function() {
return { posts: this.props.initialAppRoles };
},
render: function() {
var posts = this.state.app_roles.map(function(app_role) {
return <AppRole key={app_role.id} app_role={app_role} />;
});
return (
<div className="label">
{app_roles}
</div>
);
}
});
私はと私のapp_roles/index.html.erbファイルにこれをレンダリングしてみてください:
<%= react_component('AppRolesList',
{ initialAppRoles: @app_roles },
{ prerender: params[:noprerender].nil? }) %>
私が言うエラーが出る:
をExecJS::RuntimeError at /app_roles
/private/var/folders/75/70zm4s4j14q74tfqpjvh49s80000gp/T/execjs20161015-7497-1bhq2x0js:24066
return <div className="h2">
^
SyntaxError: Unexpected token <
at exports.runInThisContext (vm.js:53:16)
at Module._compile (module.js:373:25)
at Object.Module._extensions..js (module.js:416:10)
at Module.load (module.js:343:32)
at Function.Module._load (module.js:300:12)
at Function.Module.runMain (module.js:441:10)
at startup (node.js:139:18)
at node.js:974:3
このエラーメッセージはわかりません。私はいくつかのpostsを読んで、戻りメソッドに2つの要素が返される問題を説明しています。私は、div h2タグを完全に削除して、2つの返された要素を配列に入れてみましたが、どちらもうまくいきませんでした。
また、ベルベルを設定する際の問題点についても説明しています。私はそれらのコメントの要点に従わない。私の設定development.rbで、私は持っています:
config.react.variant = :development
config.react.addons = true
config.react.jsx_transform_options = {
blacklist: ['spec.functionName', 'validation.react', 'strict'], # default options
# optional: ["transformerName"], # pass extra babel options
whitelist: ["useStrict"] # even more options
}
私はオプション:フィールドに書き込むはずです。私は反応レールが私に自動的に働く何らかの種類のデフォルト設定を与えるだろうと思った。
私も追加してみました:
/** @jsx React.DOM */
のコンポーネントファイルのそれぞれの先頭に。それは問題に何の差もないが。
また、私はどちらか、何も変更しないのconfig/application.rb
config.react.jsx_transformer_class = React::JSX::JSXTransformer
にこれを追加してみました。それは、この問題には違いが行われていない
npm install --save-dev babel-preset-react
:
は、私も自分のコマンドラインにこれを追加してみました。
誰かがこのページを読み込むために必要なことを見ることはできますか?
Application.jsがあります
//= require jquery
//= require jquery_ujs
//= require tether
//= require bootstrap-sprockets
//= require turbolinks
//= require react
//= require react_ujs
// require react_bootstrap
//= require components
//= require_tree .
使用しているセットアップ前のプロジェクトスタブの種類はわかりませんが、そのエラーは1つのことだけを意味する可能性があります: 'babel'は正しく設定されていません。 – mostruash
Ok - 「セットアップ前のプロジェクトスタブ」が何を意味するのか分かりません。私は反応レールを使用しています。私はその宝石のセットアップ手順に従った。あなたは反応レールのためのbabel設定指示をどこで見つけるか知っていますか?私はノードがインストールされている。私は、レールで作業するためのアプリの設定を完了するために別の指示を検索しなければならないかどうかはわかりませんでした。 – Mel
これは、物事を正しく設定し、あなたが自分でしなければならなかった場所に配置することで、あなたの人生を楽にするはずですが、控えめにそれはあまり役に立ちません。あなたは "反応レール"の宝石のように幸運を経験した多くの人々をここで見つけることはできません。 – mostruash