ngReact无法找到我的反应组件

时间:2015-08-22 14:58:34

标签: angularjs ngreact

我一直试图让这个工作多年,但无论我做什么,指令都找不到我的反应组件。

这些是我包含的文件:

<script src="bower_components/react/JSXTransformer.js"></script>
<script src="bower_components/react/react-with-addons.js"></script>
<script src="bower_components/ngReact/ngReact.min.js"></script>
<script src="node_modules/babel-core/browser.js"></script>
<script src="static/react-components.min.js" type="text/babel"></script>
<script src="static/main.min.js"></script>

我的组件位于react-components.min.js文件中,并且我的所有角度代码都位于main.min.js内。

据说你(可能(?))需要在浏览器转换器中使用这个指令才能工作,所以我尝试使用babel,但这也行不通。

这是我的反应部分:

<react-component name="Chat" watch-depth="reference"></react-component>

在react-components.min.js文件中,我得到了一个名为“Chat”的组件:

var Chat = React.createClass({
   render: function() {
    return <footer className="chat chat--dark">Hello John</footer>;
  }
});

core.value('Chat', Chat); // My application is bound to the core module

但它没有找到它......有什么可能是错的,因为没有其他人似乎有这个问题?

1 个答案:

答案 0 :(得分:1)

JSX编译问题

我认为这是编译错误。我通过在线编译器(https://babeljs.io/repl/)运行代码,将当前组件代码与下面的块交换出来,看看它是否有效:

"use strict";

var Chat = React.createClass({
  displayName: "Chat",

  render: function render() {
    return React.createElement(
      "footer",
      { className: "chat chat--dark" },
      "Hello John"
    );
  }
});

core.value('Chat', Chat); // My application is bound to the core module

不推荐使用JSXTransformer,您应该在使用Babel的构建步骤中添加。 https://facebook.github.io/react/blog/2015/06/12/deprecating-jstransform-and-react-tools.html

查看我的博文,了解有关添加JSX和ES6支持的细分。 http://blog.tylerbuchea.com/migrating-angular-project-to-react/