【发布时间】:2017-04-03 19:47:21
【问题描述】:
我收到此错误:
错误: (SystemJS) addComponentAsRefTo(...): 只有 ReactOwner 可以有 refs。您可能正在向组件添加一个 ref,该组件不是在组件的
render方法中创建的,或者您加载了多个 React 副本。
浏览器上的网络选项卡没有显示正在加载的任何重复项。
这是我的组件 (TSX):
import * as DOM from "react-dom";
import * as $ from "jquery";
import * as React from "react";
declare var layerslider;
export class LayerSlider extends React.Component<any, {}> {
element: any;
componentDidMount() {
console.log(this.element);
}
render() {
return <div>
{this.props.children}
</div>;
}
}
DOM.render(<div><div ref="element"></div></div>, document.getElementById("lsl"));
我使用system.js如下。
System.config({
typescriptOptions: { emitDecoratorMetadata: true },
map: {
'react-component': 'ignite/components',
'jquery': 'lib/jquery/dist/jquery.js',
},
paths: {
'react-dom': "lib-npm/react-dom/dist/react-dom.js",
'react': "lib-npm/react/dist/react.js"
},
packages: {
app: {
defaultExtension: 'js'
},
'ignite': { main: 'boot.js' },
'rxjs': { main: 'Rx.js' },
}
});
html 是...
<layerslider id="lsl">
<div class="layerslider" style="width: 100%; height: 1200px">
<div class="ls-slide">
<img src="~/images/site/home/banner.jpg" class="ls-bg" alt="Image layer">
<h4 class="ls-l" style="top: 40%; left: 50%; width: 80%; text-align: center" data-ls="@ViewBag.Center">Recognizing your commitment to</h4>
<h1 class="ls-l green" style="top: 55%; left: 50%; width: 80%; text-align: center" data-ls="@ViewBag.Center">SUSTAINABLE ENERGY</h1>
</div>
</div>
</layerslider>
...
【问题讨论】:
标签: javascript reactjs typescript