我一直在使用meteor-react 和flow-router 开发meteor.js 和react.js 应用程序。
我从这样的结构开始:
- 客户
- 成分
- 注册.jsx
- 布局
- 头文件.jsx
- 页脚.jsx
- 库
- router.jsx main.html main.jsx
- 成分
在我的 router.jsx 文件中,我从 register.jsx 文件中调用 RegisterForm 类
FlowRouter.route('/', {
action() {
ReactLayout.render(MainLayout, { content: <RegistrationForm /> });
}
});
只要我的所有组件类都在 register.jsx 文件中,这很好用,但是随着我的项目越来越大,我不想将所有类放在一个文件中,而是将 register.jsx 拆分为单独的 .jsx 文件。
例如,我有一个名为 VerifiedInput 的类,它包含用于自定义输入字段验证的额外功能。如果我在同一个 register.jsx 中包含这个类,我可以在我的 RegisterForm 类的渲染函数中调用它,
VerifiedInput = React.createClass({
....
});
RegistrationForm = React.createClass({
....
render : function(){
return(
<VerifiedInput />
)
}
});
但是如果我将 VerifiedInput 类移动到一个单独的文件中,那么我的组件文件夹结构将更改为:
- components
- register.jsx
- validinput.jsx
然后我收到一个错误:ReferenceError: VerifiedInput is not defined
这似乎表明 .jsx 文件不包括在内。
据我了解,meteor 应该自动在客户端文件夹中包含文件,并且无法使用require() Meteor.js
如何确保包含单独文件中的反应类?