流星包中的反应组件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了流星包中的反应组件相关的知识,希望对你有一定的参考价值。

2017-10-23解决[见下文]

我正在尝试将React Components写成Meteor Packages,我想我在某处做了一些非常错误的事情,我无法在网上找到任何样本。

我的包装设置如下:

Package.describe({
  name: 'bardia:mapackage',
  version: '0.0.1',
  summary: '',
  documentation: 'README.md'
});

Package.onUse(function(api) {
  api.versionsFrom('1.5.2');
  api.use('ecmascript');
  api.mainModule('mapackage.js');
});

而我的包装就像

import Comps from './Comps';

export const name = Comps;

和我的反应组件是这样的

import React, { Component } from 'react';

class Comps extends Component {
  render() {
    return (
      <div>
         welll this lah
      </div>
    );
  }
}

export default Comps;

并在将其导入我的主应用程序时:

import {name} from 'meteor/bardia:mapackage'
const App = props => (
  <center>{name}</center>
);

它只是返回

<center data-reactroot=""></center>

如果我替换export const name = Comps导出const name ='Comps';它将呈现'Comps'。意思是,它只渲染字符串。

我怎么才能上班!

答案

因此,在与另一位开发人员交谈之后,我设法更好地了解了组件的呈现方式。作为一种解决方案,我使用React-Router重定向到每个组件,因为我最初希望它是这样的。

我正在使用CleverBeagle Pup Boilerplate,没什么好看的,它是一个最小的Meteor-React软件包,提供您所需的工具,而不会过度复杂化。

如果你想获得我正在运行的代码,请克隆这个repo:REPO

一旦你克隆它,在文件夹和Meteor npm installnpm start运行Read More

在包文件夹中,我创建了一个名为Mapackage的示例包,这就是所有魔法发生的地方。当我正在进行测试时,我将对此回购进行更改。


Comps.jsx

这只是一个简单的反应组件,需要导出

Mapackage.js

//Import Components that are going to be exported as Routes
import Comps from './Comps';

//Export Router and their components
const MaPack = ()=>{
  return(
    <div>
      <Route path='/maPack' exact={true} component={Comps} />
      //if you want more functionality on your routes
      <Route path='/maPack/:_id' exact={true} component={subMaPack} />
    </div>
  )
}

完成此操作后,您只需将Root组件导入路由器或交换机qazxsw poi即可

以上是关于流星包中的反应组件的主要内容,如果未能解决你的问题,请参考以下文章

如何使流星中的d3方向力图反应?

流星中的反应方法调用不是反应性的

反应和流星“未捕获的类型错误:无法读取未定义的属性'createElement'”

反应,流星,webpack,es6。如何创建加载/启动屏幕

包中的 ButtonProps 与包中的 Button 组件不兼容

官方 Laravel Passport 包中 Vue.js 组件中的 jQuery 代码