我有一个 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>
出现如下错误:
意外地将“this”别名为本地变量@ typescript-eslint / no-this-alias
我使用const vm = this
的原因是一旦进入getActiveIndex
方法,this
的作用域会发生改变,我无法修改contentClass
数据属性。
与其盲目禁用ESLint规则以允许将this
分配给常量,我想知道是否有人能够提供更好/正确的解决方案?
非常感谢。
vm.contentClass = 'bg-gradient-' + i
替换为this.contentClass = 'bg-gradient-' + i
会导致一个错误(“意外地将 this 别名化为本地变量”)。可能是因为slideChange
方法不是箭头函数;但我认为它不能是箭头函数? - Danthis.contentClass
不会给this
起别名;相反,是vm.conentClass
(其中vm
=this
)会导致 linter 错误。你有一个能重现这个问题的 GitHub 仓库链接吗? - tony19