首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我无法使用React_on_Rails gem注册组件

我无法使用React_on_Rails gem注册组件
EN

Stack Overflow用户
提问于 2017-03-31 05:15:35
回答 1查看 1.4K关注 0票数 1

注册在默认的HelloWorld应用上运行得很好,但是一旦我删除了文件夹并创建了自己的文件夹,它就停止工作了。

我在app/bundles下创建了一个名为post的新文件夹和一个启动文件夹。

在启动文件夹中,我按如下方式注册组件:

代码语言:javascript
运行
复制
import ReactOnRails from 'react-on-rails';

import PostContainer from '../containers/PostContainer';

ReactOnRails.register({
  PostContainer
});

PostContainer.jsx文件位于containers文件夹中,如下所示:

代码语言:javascript
运行
复制
import React, { PropTypes, Component } from 'react';

export default class PostsContainer extends React.Component {
  render() {
    return (
      <div>
        <Header />
        <PostList posts={this.props.posts} />
      </div>
    )
  }
}

我的webpack.config.js文件如下所示:

代码语言:javascript
运行
复制
entry: [
    'es5-shim/es5-shim',
    'es5-shim/es5-sham',
    'babel-polyfill',
    './app/bundles/HelloWorld/startup/registration',
  ],

我尝试将HelloWorld更改为posts或Posts,但不起作用。

我是否应该有一个名为webpack.configure.build.js的文件?或者webpack.config.js是我需要编辑的文件?

任何帮助都将不胜感激!

EN

回答 1

Stack Overflow用户

发布于 2017-08-01 23:35:58

您是否将组件添加到传入了关联属性的erb视图文件中?你需要在你的Posts控制器中添加道具,或者在渲染你的Posts视图的控制器中添加道具。我非常确定您需要在您的webpack配置中添加一行:

代码语言:javascript
运行
复制
config: {
  'webpack-bundle': [
    '...',
    './app/bundles/Posts/startup/registration'
  ]
}

然后在您的视图中:

代码语言:javascript
运行
复制
<%= react_component("PostsContainer", props: @posts_props, prerender: false) %>

还要确保在布局文件中有:

代码语言:javascript
运行
复制
<%= javascript_pack_tag 'webpack-bundle' %>

注意:现在应该从prop-types包导入PropTypes。react团队最近将该包从react核心中提取出来。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43128484

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档