Javascript React-从外部脚本设置组件状态
我有React项目,我想向应用程序添加外部脚本:Javascript React-从外部脚本设置组件状态,javascript,reactjs,Javascript,Reactjs,我有React项目,我想向应用程序添加外部脚本: <script async src="https://geowidget.easypack24.net/js/sdk-for-javascript.js"></script> <link rel="stylesheet" href="https://geowidget.easypack24.net/css/easypack.css"/> 它正在工作,
<script async src="https://geowidget.easypack24.net/js/sdk-for-javascript.js"></script>
<link rel="stylesheet" href="https://geowidget.easypack24.net/css/easypack.css"/>
它正在工作,但我想在我的组件中使用函数返回值
point
(将其用作组件状态)好的,我找到了解决方案。在函数中设置window.point,然后在组件中读取window.point
script2.innerHTML = "window.easyPackAsyncInit = function () {easyPack.init({});var map = easyPack.mapWidget('easypack-map', function (point) {window.point = point);});};";
但这是最好的解决方案吗?选项1从另一个脚本调用:只需将
this.setState
暴露到窗口上的方法,并调用该方法将更新其状态
componentDidMount() {
window.setPoint = (point)=>this.setState('point',point)
}
// open console and run setPoint(xxx) and check the UI change
选项2调用公开方法并从中调用,就像您所做的那样进行反应,但事情可能会更好
<script async src="https://geowidget.easypack24.net/js/sdk-for-javascript.js"></script>
<link rel="stylesheet" href="https://geowidget.easypack24.net/css/easypack.css"/>
componentDidMount() {
window.setPoint = (point)=>this.setState('point',point)
}
// open console and run setPoint(xxx) and check the UI change
<script async src="https://geowidget.easypack24.net/js/sdk-for-javascript.js"></script>
<link rel="stylesheet" href="https://geowidget.easypack24.net/css/easypack.css"/>
componentDidMount() {
easyPack.init({});
var map = easyPack.mapWidget('easypack-map', (point)=>{
console.log(point);
this.setState('point',point)
});