vue数据改变视图不改变

代码是这样的:
里面这个span就是我要通过数据去改变它的一个是否存在

<el-form-item label="重点要求(标签):">
                <span style="color: #ccc;font-size: 13px;">可以创建多个标签,每输入一个标签后可点击回车键确定,再输入下一个</span>
                <el-input @change="requireChange" v-model="str" placeholder="请输入内容"></el-input>
                <span style="padding: 7px 13px;background-color: #5EADFF;border-radius: 10px;margin-right: 15px;" v-for="(item,index) in ruleForm.requires" :key="index"><span style="padding: 0 7px;" @click="dltRequire(index)" class="iconfont el-icon-delete-solid"></span>{{item}}</span>
            </el-form-item>
dltRequire(index) {
        this.$nextTick(() => {
            let requires = this.ruleForm.requires
            requires.splice(index,1)
            this.ruleForm.requires = requires
            console.log('requires',requires);
            console.log('this.ruleForm.requires',this.ruleForm.requires);
        })
    },

大🐂们,请问问题出在哪啊

别拿index作为key值
有id的话用id没有就用Math.floor(Math.random() * 1000000000000)
可以的话给个采纳

使用this.$set去修改数据

 this.$set(this.ruleForm,'requires',requires)

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 这篇文章:在Vue中span标签的背景图是根据后台返回的数据动态显示的图片 也许有你想要的答案,你可以看看
  • 除此之外, 这篇博客: Vue后台管理系统项目(20)表单元素自动聚焦的实现中的 2.给span绑定点击事件 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

    我们点击span的时候,我们需要获取到input相应的节点进行聚焦

    那么我们怎么获取到input相应的节点呢,我们可以利用ref来获取,相当于给每一个el-input打了一个ref

    因为input里面可不止一个属性值,那么我们怎么区分他们呢,我们利用:ref="$index"来区分$index来作为ref属性值,就可以区分了

     methods中:

     打印:

  • 以下回答来自chatgpt:

    问题原因可能是没有正确地在Vue实例中修改数据。解决方案如下:

    1. 确保在Vue实例中正确地定义了需要修改的数据。可以在data属性中定义一个visible属性,用于控制span元素的可见性。
    data: {
      visible: false
    }
    
    1. 通过修改数据来控制span元素的可见性。可以在某个事件或方法中修改visible属性的值,比如点击事件。
    <span v-show="visible">这是需要控制可见性的文本</span>
    <button @click="setVisibility">点击设置可见性</button>
    
    methods: {
      setVisibility() {
        this.visible = !this.visible;
      }
    }
    
    1. 确保Vue实例已经正确地挂载到DOM元素上。
    new Vue({
      el: '#app',
      data: {
        visible: false
      },
      methods: {
        setVisibility() {
          this.visible = !this.visible;
        }
      }
    });
    

    这样,当点击按钮时,就会触发setVisibility方法,修改visible属性的值,从而控制span元素的可见性。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^