Vue.js Vue v-bind:样式不随嵌套数据更改而更新

Vue.js Vue v-bind:样式不随嵌套数据更改而更新,vue.js,Vue.js,组件的样式不会使用itemStyleMap[index]值更改进行更新: <view class="item" v-for="(item, index) in itemList" :key="index" :style="itemStyleMap[index]" /> 可以在此处找到更简单的演示: 有没有其他更好的方法来控制像这样的样式集的内部数量?我不知道你的项目出了什么问题,但我做了

组件的样式不会使用itemStyleMap[index]值更改进行更新:

<view
  class="item"
  v-for="(item, index) in itemList"
  :key="index"
  :style="itemStyleMap[index]"
/>
可以在此处找到更简单的演示:


有没有其他更好的方法来控制像这样的样式集的内部数量?

我不知道你的项目出了什么问题,但我做了类似的事情,效果很好。 看看这个


{{item}}
var vm=新的Vue({
el:“应用程序”,
数据(){
返回{
项目列表:[0,1,2],
itemStyleMap:[{
背景:“紫色”,
显示:“块”,
zIndex:“未设置”,
转换:“取消设置”,
转换来源:“未设置”,
},
{
背景:“红色”,
显示:“块”,
zIndex:“未设置”,
转换:“取消设置”,
转换来源:“未设置”,
},
{
背景:“棕色”,
显示:“块”,
zIndex:“未设置”,
转换:“取消设置”,
转换来源:“未设置”,
},
],
};
},
})
也许你需要更多地了解反应性。因此,您可以在此处阅读:


我不知道你的项目出了什么问题,但我做了类似的事情,效果很好。 看看这个


{{item}}
var vm=新的Vue({
el:“应用程序”,
数据(){
返回{
项目列表:[0,1,2],
itemStyleMap:[{
背景:“紫色”,
显示:“块”,
zIndex:“未设置”,
转换:“取消设置”,
转换来源:“未设置”,
},
{
背景:“红色”,
显示:“块”,
zIndex:“未设置”,
转换:“取消设置”,
转换来源:“未设置”,
},
{
背景:“棕色”,
显示:“块”,
zIndex:“未设置”,
转换:“取消设置”,
转换来源:“未设置”,
},
],
};
},
})
也许你需要更多地了解反应性。因此,您可以在此处阅读:

数据中的应该是一个函数

  el: "#app",
  data(){
    return {
      spanStyle: {
        t:{
          fontSize: "36px",
          color: 'yellow',
          border: null
        }
      }
    }
  },
  methods: {
    changeColors() {
        this.spanStyle.color = (this.spanStyle.t.color == 'red') ? 'blue' : 'red';
      
        this.spanStyl.border = (this.spanStyle.t.border == '3px solid blue') ? '3px solid red' : '3px solid blue';
    }
  }
});
另外,您在changeColors方法中遗漏了.t
this.spanStyle.color
应该是
this.spanStyle.t.color
this.spanStyl.border
应该是
this.spanStyl.t.border
在您的数据中应该是一个函数

  el: "#app",
  data(){
    return {
      spanStyle: {
        t:{
          fontSize: "36px",
          color: 'yellow',
          border: null
        }
      }
    }
  },
  methods: {
    changeColors() {
        this.spanStyle.color = (this.spanStyle.t.color == 'red') ? 'blue' : 'red';
      
        this.spanStyl.border = (this.spanStyle.t.border == '3px solid blue') ? '3px solid red' : '3px solid blue';
    }
  }
});

另外,您在changeColors方法中遗漏了.t
this.spanStyle.color
应该是
this.spanStyle.t.color
this.spanStyl.border
应该是
this.spanStyl.t.border

你的小提琴将
this.spanStyle.colot
更改为
this.spanStyle.t.color
,或者尝试将你的小提琴更改为
this.spanStyle.colot
此.spanStyle.t.color
或尝试此
  el: "#app",
  data(){
    return {
      spanStyle: {
        t:{
          fontSize: "36px",
          color: 'yellow',
          border: null
        }
      }
    }
  },
  methods: {
    changeColors() {
        this.spanStyle.color = (this.spanStyle.t.color == 'red') ? 'blue' : 'red';
      
        this.spanStyl.border = (this.spanStyle.t.border == '3px solid blue') ? '3px solid red' : '3px solid blue';
    }
  }
});