gpt4 book ai didi

react-native - 获取 DedicatedWorkerGlobalScope 而不是构造函数

转载 作者:行者123 更新时间:2023-12-04 01:08:07 28 4
gpt4 key购买 nike

当我打印 这个在我得到的 onScroll 处理程序内部
DedicatedWorkerGlobalScope 而不是 build 者 .

var Frame = React.createClass({
_handleScroll: (ev) => {
console.log(this) //DedicatedWorkerGlobalScope
},
render: function() {
return (
<ScrollView
ref='scrollViewH'
onScroll={this._handleScroll}>
{items}
</ScrollView>
);
}
});

如果我使用内联函数处理滚动,则此方法正确:
var Frame = React.createClass({
render: function() {
return (
<ScrollView
ref='scrollViewH'
onScroll={(ev) => {
console.log(this) //Constructor
}}>
{items}
</ScrollView>
);
}
});

装订 这个不起作用。
onScroll={this._handleScroll.bind(this)}

最佳答案

当您使用箭头函数声明时,您使用的是与变量“Frame”处于同一级别的“this”,因为 es6 正在推断上下文。这在下面的文章中进行了解释,其中指出

[Arrow functions] have implicit return and most importantly, they always use the value of this from the enclosing scope



这篇文章给出了一个相当不错的解释,绑定(bind)语法在 ES6 中是如何工作的,以及如何获得预期的行为:

https://www.sitepoint.com/bind-javascripts-this-keyword-react/

关于react-native - 获取 DedicatedWorkerGlobalScope 而不是构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38070268/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com