我想在页面重新加载时检查localStorage,如果已经有一个项目,如果是,我想更新" cryptocurreny"使用当前值(标题和值)。
当我使用addCrypto()
函数添加内容时,我的localStorage如下所示:
[{"名称":" ETH""值":" 1.5"},{"名称&# 34;:" BTC""值":" 2.75"}]
这是我的组成部分:
<template>
<div>
<div v-for="coin in cryptocurrency">
<input v-model="coin.name">
<input v-model="coin.value">
</div>
<button @click="addCrypto">
New Cryptocurreny
</button>
</div>
</template>
<script>
export default {
name: 'HelloWorld',
data () {
return {
cryptocurrency: [],
}
},
methods: {
set_data() {
localStorage.setItem( 'cryptocurrencies', JSON.stringify(this.cryptocurrency) );
this.cryptocurrency = this.get_data();
},
get_data(){
return localStorage.getItem('cryptocurrencies');
},
addCrypto() {
localStorage.setItem( 'cryptocurrencies', JSON.stringify(this.cryptocurrency) );
this.cryptocurrency.push({ name: '', value: ''});
}
}
}
</script>
但我尝试在localStorage.getItem('cryptocurrencies');
函数的末尾添加addCrypto()
但我收到错误,并且在页面重新加载时,cryptocurreny
变量为空。
答案 0 :(得分:1)
我无法确定您正在做的事情,但从我看到的set_data()
函数不会被调用到任何地方?
您想要使用已安装或创建的挂钩(see which one suits you)并在那里进行检查。
示例强>
mounted () {
const saved = localStorage.getItem('cryptocurrencies')
if (saved) {
this.cryptocurrency = saved
}
}
您可以将该代码放入其自己的方法中,然后在mounted()
中调用它。