注册在默认的HelloWorld应用上运行得很好,但是一旦我删除了文件夹并创建了自己的文件夹,它就停止工作了。
我在app/bundles下创建了一个名为post的新文件夹和一个启动文件夹。
在启动文件夹中,我按如下方式注册组件:
import ReactOnRails from 'react-on-rails';
import PostContainer from '../containers/PostContainer';
ReactOnRails.register({
PostContainer
});
PostContainer.jsx文件位于containers文件夹中,如下所示:
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文件如下所示:
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是我需要编辑的文件?
任何帮助都将不胜感激!
发布于 2017-08-01 23:35:58
您是否将组件添加到传入了关联属性的erb视图文件中?你需要在你的Posts控制器中添加道具,或者在渲染你的Posts视图的控制器中添加道具。我非常确定您需要在您的webpack配置中添加一行:
config: {
'webpack-bundle': [
'...',
'./app/bundles/Posts/startup/registration'
]
}
然后在您的视图中:
<%= react_component("PostsContainer", props: @posts_props, prerender: false) %>
还要确保在布局文件中有:
<%= javascript_pack_tag 'webpack-bundle' %>
注意:现在应该从prop-types
包导入PropTypes
。react团队最近将该包从react核心中提取出来。
https://stackoverflow.com/questions/43128484
复制相似问题