javascript - 单击Vuejs中的按钮时,如何在选项卡中添加存储在变量中的图像?
问题描述
我想将 gif 存储在一个名为 gifCharles 的变量中,该变量位于 Vuejs 组件的数据部分中。然后每次我点击一个按钮时,图像都会被推送到存储在变量 gifTab 中的选项卡上,这要归功于 NumberMatch 方法。不幸的是,我似乎无法让它工作,任何人都可以帮助我吗?这是代码:
<!-- SCRIPT-->
<script>
export default {
name:'Body',
data() {
return {
luckyNumber:'',
randomNumber:'',
number: 0,
gifCharles:require("../assets/jpg/isolation-charles.png"),
gifTab:[],
scoresTab:[],
total:0,
}
},
methods: {
RandomNumbGenerator(){
this.randomNumber = Math.floor(Math.random()*11);
return this.randomNumber
},
InputValue(){
this.luckyNumber = document.getElementById("input_lucky_numb").value;
},
NumberMatch(){
if(this.randomNumber == this.luckyNumber){
var tabGif = this.gifTab.push(this.gifCharles)
return tabGif
}
}
},
};
</script>
解决方案
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/push -- 是一个可变事件。这意味着它不会返回新对象,而是修改原始对象。
在NumberMatch
中,尝试任一:
保持推送,并引用this.gifTab
而不是NumberMatch
.
或切换到concat
,并返回该结果。
this.gifTab = this.gifTab.concat(this.gifCharles)
return this.gifTab
TLDR;push 返回“调用该方法的对象的新长度属性。” 不是新值。concat
有你想要的行为。
推荐阅读
- c - C Shell:程序挂在第一个孩子中
- c - *s++ 中发生了什么?
- sql - Postgres 数组列不小心变成了文本,如何将其转换回文本数组?
- java - 当第一个实体是具有指定主键的实体之后的以下实体时,如何使用 JPA 获取列表
- nginx - Openshift 中的 NGINX - NGINX 无法解析内部主机名
- android - 可点击的父母和孩子
- python - 'ValueError:无法将输入数组从形状(5,5)广播到形状(5)'用于 scipy.optimize-minimize
- vb.net - Visual Basic 计算器
- compiler-errors - gfortran:错误:-fPIC -ffree-line-length-0:没有这样的文件或目录
- matlab - 图像中超像素的相邻和非相邻超像素