为了账号安全,请及时绑定邮箱和手机立即绑定

[Vue warn]: Error in callback for watcher "items": 这是什么地方写错了啊

[Vue warn]: Error in callback for watcher "items": 
(found in <App> at C:\Users\admin\vue_test\src\App.vue)
warn @ vue.esm.js?d2fe:558
handleError @ vue.esm.js?d2fe:1443
run @ vue.esm.js?d2fe:2553
flushSchedulerQueue @ vue.esm.js?d2fe:2329
(anonymous) @ vue.esm.js?d2fe:505
nextTickHandler @ vue.esm.js?d2fe:454
vue.esm.js?d2fe:1447 TypeError: Cannot read property 'setItem' of undefined
    at Object.save (eval at <anonymous> (app.js:938), <anonymous>:10:28)
    at VueComponent.handler (eval at <anonymous> (app.js:904), <anonymous>:20


正在回答

15 回答

watch items 那里有问题,handler拼的对不对

2 回复 有任何疑惑可以回复我~
#1

Arey_jy

this 指向不对 在 handler 拿不到return data{ 中的值}
2017-04-19 回复 有任何疑惑可以回复我~
#2

Arey_jy

怎么解决老师
2017-04-19 回复 有任何疑惑可以回复我~
#3

fishenal 回复 Arey_jy

watch 的 处理方法里就没有this, 值是通过函数的两个参数拿到的
2017-04-21 回复 有任何疑惑可以回复我~
#4

Arey_jy

我已经发现了 ()=> {} function 的作用域不一样
2017-04-21 回复 有任何疑惑可以回复我~
#5

radius_wzx 回复 fishenal

那请问这个问题怎么解决,另外一个参数应该怎么传?
2018-02-24 回复 有任何疑惑可以回复我~
#6

qq_西西弗斯的石头_0

确实是handle的问题。不管里面几个watch 都用handle . handle函数里面可以拿到this的
2022-11-08 回复 有任何疑惑可以回复我~
查看3条回复

解决了,多谢大佬

0 回复 有任何疑惑可以回复我~

vue.esm.js?efeb:591 [Vue warn]: Error in callback for watcher "items": "TypeError: JSON.stringfy is not a function"


found in


---> <App> at src\App.vue

       <Root>

warn @ vue.esm.js?efeb:591

logError @ vue.esm.js?efeb:1737

globalHandleError @ vue.esm.js?efeb:1732

handleError @ vue.esm.js?efeb:1721

run @ vue.esm.js?efeb:3235

flushSchedulerQueue @ vue.esm.js?efeb:2981

(anonymous) @ vue.esm.js?efeb:1837

flushCallbacks @ vue.esm.js?efeb:1758

vue.esm.js?efeb:1741 TypeError: JSON.stringfy is not a function

    at Object.save (store.js?3bf3:7)

    at VueComponent.handler (App.vue?26cd:29)

    at Watcher.run (vue.esm.js?efeb:3233)

    at flushSchedulerQueue (vue.esm.js?efeb:2981)

    at Array.eval (vue.esm.js?efeb:1837)

    at MessagePort.flushCallbacks (vue.esm.js?efeb:1758)

logError @ vue.esm.js?efeb:1741

globalHandleError @ vue.esm.js?efeb:1732

handleError @ vue.esm.js?efeb:1721

run @ vue.esm.js?efeb:3235

flushSchedulerQueue @ vue.esm.js?efeb:2981

(anonymous) @ vue.esm.js?efeb:1837

flushCallbacks @ vue.esm.js?efeb:1758

哪位大神帮我解决一下上述的错误,谢谢啦

0 回复 有任何疑惑可以回复我~
#1

无聊的bug

我也是这个错误 哎 累死心了 大半天解决不了 你解决了没啊?
2018-06-01 回复 有任何疑惑可以回复我~

const STORAGE_KEY='todos-vuejs'
export default{
 fetch(){
   return JSON.parse(window.localStorage.getItem(STORAGE_KEY)||'[]')
 },
 save(items){

   window.localStorage.setItem(STORAGE_KEY,JSON.stringify(items))
 }
}

我的问题解决了,items参数传错了

0 回复 有任何疑惑可以回复我~
#1

qq_V_27

你是正解呀!哈哈哈
2017-10-31 回复 有任何疑惑可以回复我~
#2

慕用2278935

items参数写对了,但是依然报错,这是什么情况?
2018-04-15 回复 有任何疑惑可以回复我~
#3

qq_北贝_0 回复 慕用2278935

是不是json.stringify中间的点写成杠了
2018-10-08 回复 有任何疑惑可以回复我~

我也是同样的问题,请问老师,怎么解决,谢谢


0 回复 有任何疑惑可以回复我~

请问是什么原因,怎么解决的?谢谢?


0 回复 有任何疑惑可以回复我~

handler:(val,oldVal)=>{} 这样会报错,箭头函数导致this指向出错,改成handler:function(val,oldVal){}这样就好了。

1 回复 有任何疑惑可以回复我~
#1

呀_明静

?,解决了
2019-01-30 回复 有任何疑惑可以回复我~

App.vue是作为main.js中的组件使用的, 所以在App.vue中初始化对象时需要用函数返回声明,

export default {

    data () {

        return {

            items : Store.getStorage(),

            newItem: ''

        }

    }

}

我觉得是这样的

0 回复 有任何疑惑可以回复我~

[Vue warn]: Error in callback for watcher "items": "ReferenceError: items is not defined"

我的是这样

0 回复 有任何疑惑可以回复我~

store.js文件中的save方法的需要传递参数items

3 回复 有任何疑惑可以回复我~
首页上一页12下一页尾页

举报

0/150
提交
取消
vue.js入门基础
  • 参与学习       209716    人
  • 解答问题       677    个

本门为vuejs入门教程,详细的讲解加实战,可以帮你进入vuejs的大门

进入课程

[Vue warn]: Error in callback for watcher "items": 这是什么地方写错了啊

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信