vue.js - VueJS - 如何通过单击图标在 vuexy 中的深色和浅色主题之间切换
问题描述
我正在尝试使用图标在深色和浅色主题之间切换,我尝试使用单选按钮,它工作得非常好,我不知道我的图标哪里出错了。
以下是适用于 vs-radio 按钮的代码:
<vs-radio v-model="changeTheme" vs-value="light" vs-name="theme-mode-light">Light</vs-radio>
<vs-radio v-model="changeTheme" vs-value="dark" vs-name="theme-mode-dark">Dark</vs-radio>
...
<script>
watch: {
layoutType (val) {
// Reset unsupported options
if (val === 'horizontal') {
if (this.changeTheme === 'semi-dark') this.changeTheme = 'light'
if (this.navbarType === 'hidden') this.navbarTypeLocal = 'floating'
this.$emit('updateNavbarColor', '#fff')
}
}
},
computed: {
changeTheme: {
get () { return this.$store.state.themecolr},
set (val) { this.$store.dispatch('updateTheme', val) }
},
}
</script>
这是我目前正在尝试实现的代码:
<div class="con-img ml-3">
<feather-icon v-if="this.$store.state.themecolr=== 'light'" icon="Icon" v-model="changeTheme" vs-name="theme-mode-light"/>
</div>
<div class="con-img ml-3">
<feather-icon v-if="this.$store.state.themecolr=== 'dark'" icon="Icon" v-model="changeTheme" vs-value="dark" vs-name="theme-mode-light"/>
</div>
...
methods: {
changeTheme: {
get () { return this.$store.state.themecolr},
set (val) { this.$store.dispatch('updateTheme', val) }
},
}
我尝试将@change 和@click 添加到羽毛图标但没有成功,我还尝试添加这样的功能:
changeTheme (){
if(this.$store.state.themecolr=== 'light'){
return this.$store.state.themecolr=== 'dark'
}else if(this.$store.state.themecolr=== 'dark'){
this.$store.state.themecolr=== 'light'
}
}
请有人帮我实现这一点,我想使用羽毛图标切换主题,但我可以使用单选按钮来完成,但这不是我想要的。
解决方案
我查看了vue-feather-icons
这里的实现,
它缺少事件处理程序。如果是这种情况,则意味着这些组件不会发出任何事件。
我建议您将事件处理程序移动到div
图标的周围。看看我在这里做了一个例子:https ://codesandbox.io/s/distracted-noether-gud0p?file=/src/App.vue
推荐阅读
- java - 在 X-Ray 控制台 AWS 中找不到跟踪
- vue.js - 带内页排序的 bootstrap-vue 表
- fish - 为什么鱼重定向没有按预期工作
- c# - 需要访问令牌才能从 Windows 应用程序访问 google api
- python - Django:TypeError:post()缺少1个必需的位置参数:'request'
- node.js - 上传文件不适用于 React Express 和 Multer
- python - 使用 NLP 进行地址拆分
- php - 我正在尝试使用 php 文件下载一个简单的 .txt,但它不起作用
- python-3.x - 将列表拆分为 Google 表格中的不同单元格
- python - 找到一个更好的正则表达式来标记法语单词中的省略号