这样写赋值有问题?

代码如下:

 async getcommentshowdatas(this: any) {
            const sampleId = this.params.idList[0]
            await this.BindingPingl({sampleId:sampleId}).then(res => {
                this.$store.state.component.forEach(v => {
                    if (res.status === 200) {
                        this.form.commentName = res.result
                        if (v.tag === "t_pj") {
                            v.compone.Value =  this.form.commentName
                        }
                    }
                    console.log(this.form.commentName)
                })
                
            })
        },

res是请求接口,然后根据this.form.commentName赋值到文本框,根据this.$store.state.component遍历出来如果直接赋值v.compone.Value,如果没有值就为空

但是回显出来的总是有数据,请问大佬们,这个怎么弄咧
期望this.form.commentName有值赋值给v.compone.Value,没有就为空,是代码那里写错了吗

阅读 2.5k
1 个回答

检查一下接口返回的 res.result 是否有值就好了呀,你不是如果请求成功就直接赋值给 this.form.componentName 了吗?
另外 res.result 是什么,是简单的字符串/数字之类的基础属性,还是对象/数组这样的引用访问
如果是对象引用的话,你的 console.log(this.form.commentName) 打印时是否有数据,如果打印的快照没有数据,点击展开箭头有数据这样的情况,就是其他地方的业务修改到导致的问题。


另外就是修改 state 中的值,请通过 mutation 操作修改,而不是直接在代码中 $store.state.xxx = xxx 这样直接赋值。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏