我有一个类MyScriptTag.tsx
,我打算在其中渲染对包含在主布局中的服务库的调用。看起来像这样:
import React from 'react';
import * as Radium from 'radium';
import { getUser } from '../actions/user';
const MyScriptTag = () => {
return (
<script>
window['ExtLibrary'] = window['ExtLibrary'] || { _queue: [], Push: function (o, p) {this._queue.push({ type: o, data: p }); } };
ExtLibrary.Push('User', {
eMail: getUser().email
});
</script>
);
};
const Component = Radium(MyScriptTag);
export default Component;
它通过以下方式包含在MainLayout.tsx
类中:
class MainLayout extends React.Component<any, any> {
render() {
const { isLoggedIn, isLoggingIn } = this.props;
return (
<div>
<section style={[styles.base]}>
...
<MyScriptTag />
</section>
</div>
)
}
}
代码未编译,这是我收到的错误消息:
error TS1005: '}' expected.
可能是个新手,因为我以前没有使用过打字稿。但是我找不到解决办法,因此谷歌搜索没有帮助。
答案 0 :(得分:1)
您在}
的末尾错过了一个MainLayout.tsx
,以关闭class
。
答案 1 :(得分:0)
我认为您应该在JSX中用{}
包装代码
<script>
{
window['ExtLibrary'] = window['ExtLibrary'] || { _queue: [], Push: function (o,
p) {this._queue.push({ type: o, data: p }); } };
ExtLibrary.Push('User', {
eMail: getUser().email
});
}
</script>