2
我是新来的reactjs,我在electron项目中使用它。我在a.jsx定义的组件,A和B分别b.jsx使用的语法如下:如何引用在其他.jsx文件中定义的组件
//a.jsx
'use babel';
import React from 'react';
export class A extends React.Component {
render() {
return (
<div>some text</div>
);
}
}
//b.jsx
'use babel';
import React from 'react';
export class B extends React.Component {
render() {
return (
<div>
<A />
</div>
);
}
}
,我使它们在HTML页面中:
<!-- index.html -->
<script>
var a = require('./a.jsx');
var b = require('./b.jsx');
React.render(React.createElement(b.B, null), document.body);
</script>
我怎么能参考分量A组件B中的A(例如,如上面b.jsx中所示,在B的渲染函数中使用A标签)?我试着添加:
import A from './a.jsx'
,但得到的错误:
Uncaught Error: Invariant Violation: Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: undefined. Check the render method of `B`.
什么是做正确的方式?
如果在b.jsx中删除了组件A的引用,那么上面的代码可以无误地运行。
在我将export语句更改为解构形式之后,它完美地工作,非常感谢编码约定的全面解释和建议:] – realjin
我希望能够在没有扩展名的情况下执行'./b',但是babel没有找到jsx文件。有没有办法做到这一点? – cyberwombat
只需在文件上使用'.js'扩展名? –