How to resolve ESLint error in defining `this` inside nested scope in Ionic Vue method(如何解决在Ionic Vue方法中定义嵌套范围内的`this`时出现ESLint错误)
本文介绍了如何解决在Ionic Vue方法中定义嵌套范围内的`this`时出现ESLint错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个Ionic Vue应用程序,它使用slides
组件在每次转换时修改反应属性。相关代码如下:
<script lang="ts">
import { IonPage, IonContent, IonSlides, IonSlide,} from '@ionic/vue'
export default {
name: 'Splash',
components: { IonPage, IonContent, IonSlides, IonSlide,},
data() {
return {
contentClass: 'bg-gradient-1',
}
},
setup() {
const slideOpts = {
autoplay: {
delay: 4000,
},
}
return { slideOpts }
},
methods: {
slideChange({ target }) {
const vm = this
target.getActiveIndex().then((i) => {
vm.contentClass = 'bg-gradient-' + i
})
},
},
}
</script>
这会生成以下错误:
Unexpected aliasing of 'this' to local variable @typescript-eslint/no-this-alias
我使用const vm = this
的原因是,一旦进入getActiveIndex
方法,this
的作用域就会发生变化,我无法修改contentClass
数据属性。
而不是盲目禁用ESLint规则以允许将this
分配给一个常量,我想知道是否有人能够提供更好/更合适的解决方案?
非常感谢。
推荐答案
可以,有一个解决方案。您可以在ESlint配置文件中添加以下对象
{
"@typescript-eslint/no-this-alias": [
"error",
{
"allowDestructuring": true, // Allow `const { props, state } = this`; false by default
"allowedNames": ["vm"] // Allow `const vm= this`; `[]` by default
}
]
}
有关更多信息,请查看TSLint:no-this-assignment
这篇关于如何解决在Ionic Vue方法中定义嵌套范围内的`this`时出现ESLint错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
沃梦达教程
本文标题为:如何解决在Ionic Vue方法中定义嵌套范围内的`this`时出现ESLint错误


猜你喜欢
- addEventListener 在 IE 11 中不起作用 2022-01-01
- Fetch API 如何获取响应体? 2022-01-01
- Quasar 2+Apollo:错误:找不到ID为默认的Apollo客户端。如果您在组件设置之外,请使用ProvideApolloClient() 2022-01-01
- CSS媒体查询(最大高度)不起作用,但为什么? 2022-01-01
- 失败的 Canvas 360 jquery 插件 2022-01-01
- 400或500级别的HTTP响应 2022-01-01
- 如何使用 JSON 格式的 jQuery AJAX 从 .cfm 页面输出查 2022-01-01
- Css:将嵌套元素定位在父元素边界之外一点 2022-09-07
- 使用RSelum从网站(报纸档案)中抓取多个网页 2022-09-06
- Flexslider 箭头未正确显示 2022-01-01