javascript - ReferenceError:在初始化之前无法访问“$zoho”——reactjs 组件
问题描述
我正在尝试将来自 zoho chat 的一些 js 添加到它自己的反应模块中。
<script type="text/javascript">var $zoho=$zoho || {};$zoho.salesiq = $zoho.salesiq || {widgetcode:"xxxxxxxxxxxxxxxxxxxxxxxxxxx", values:{},ready:function(){}};var d=document;s=d.createElement("script");s.type="text/javascript";s.id="zsiqscript";s.defer=true;s.src="https://salesiq.zoho.eu/widget";t=d.getElementsByTagName("script")[0];t.parentNode.insertBefore(s,t);d.write("<div id='zsiqwidget'></div>");</script>
我已经构建了这个组件,但是我收到了一个参考错误——“ReferenceError: Cannot access '$zoho' before initialization”
import React, { Component } from 'react';
import { withRouter } from 'react-router-dom';
import { connect } from 'react-redux';
import { bindActionCreators } from 'redux';
import Button from '@material-ui/core/Button';
import parse from 'html-react-parser';
import './ZohoLiveChat.scss';
class ZohoLiveChat extends Component {
componentDidMount () {
let $zoho = $zoho || {};
$zoho.salesiq = $zoho.salesiq || {widgetcode:"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", values:{}, ready:function(){}};
let d= document;
let s = d.createElement("script");
s.type ="text/javascript";
s.id ="zsiqscript";
s.defer = true;
s.src = "https://salesiq.zoho.eu/widget";
let t = d.getElementsByTagName("script")[0];
t.parentNode.insertBefore(s,t);
d.write("<div id='zsiqwidget'></div>");
}
render() {
return (
<div className="common-block">
ZOHO!!!!!!!!!!!!!
</div>
)
}
}
function mapStateToProps(state) {
return {
};
}
function mapDispatchToProps(dispatch) {
return bindActionCreators({ }, dispatch);
}
export default withRouter(connect(mapStateToProps, mapDispatchToProps)(ZohoLiveChat));
我看过这个例子 - 但不确定它的实现方式
const script = document.createElement("script");
script.src = "https://use.typekit.net/foobar.js";
script.async = true;
document.body.appendChild(script);
解决方案
推荐阅读
- javascript - 如何使用 express js 中的 get 方法从 mongo db 中获取数据?
- email - 如果链接已过期,我应该通知用户吗?
- goland - 运行`dep ensure`Goland Idea返回`Permission denied`
- javascript - Asp.net MVC 中的三个表级联下拉列表
- javascript - Pusher.subscribe() 不是来自服务器端的函数?
- python - 像素/数组位置到 lat long gdal Python
- python - 使用强化学习预测价格
- java - 如果我在 try/catch 之后关闭数据库连接而不是 finally
- node.js - 如何使用 Electron 检查特定软件是否安装在系统上?
- java - cassandra java驱动程序连接抛出noHostAvailableException