今天一个前端朋友在使用react遇到了一个问题,就是他在index.html中引入了一个外部的js文件,没有将它封装到react中,但是它想要调用这个js中的方法。
一开始他直接写的方法,但是提示undefined的,这是肯定的。因为作用域不同。
那么我们如何解决这个问题呢?其实也很简单。我们都知道javascript是有作用域的,我们将函数挂在到全局变量上就可以了。比如函数可以定义为全局函数。就可以使用了。
比如原来的函数为:
function sayHello(){
alert("hello");
}
我们修改为:
var sayHi = function sayHello(){
alert("hello");
}
这样我们在reactj中
componentDidMount() {
window.sayHi();
}
就可以调用了,同理将变量声明为全局变量的话,也可以在react中调用。
其实解决这个问题的核心关键就是作用域的问题。明白了这一点,问题迎刃而解。
Comments are closed.