通过vuex获取数据,数据变化了,但是select下拉框里的options却没有变化

select下拉框中的option是后台发送过来的,我在主页请求接口拿到数据,存到vuex中,在子页监听获取到,赋值是成功了,但是{{option}}这种插值会进行数据更新,下拉框中的option中数据却仍然是空的,我通过使用vue.$set()进行处理,但是仍然没有变化,不知道时哪里的问题, 难道是表单的响应机制和其它的有区别吗,有了解的烦劳解答下,再次先谢谢了!


  name:"baseSubInformationForm",

  components: {

    baseInforForm:baseInfor,

    inforForm:informationForm

  },

data() {

return {

      informationTitle:"基本信息",

      networkStateOptions:[], //options选项

      searchData:networkBaseData,

      searchForm:networkBaseForm,

      name:"",

  

      commonQuery:[]

    };

  },

created() {

this.networkCommonData();

  },

mounted() {

console.log(this.formData);

console.log(6666);

  

this.arrChange();

// this.networkStateOptions = this.netState.chainNetworkState;

  },

  

  computed: {
//获取vuex中的数据netState(数据由其他页面请求而来)
...mapState({

netState:state=>state.formData.commonComboData,

formData:state=>state.formData.netBaseFormData

    })

  },

  

  watch: {

netState:function(oldVal,newVal) {//监听netState

console.log("简简单单");

this.networkStateOptions=this.netState.chainNetworkState;监听到数据后赋值给networkStateOptions

// this.$set(this.networkStateOptions,[...this.netState.chainNetworkState]);

// this.networkStateOptions=this.networkStateOptions.concat(this.netState.chainNetworkState)

// this.networkStateOptions=Object.assign()

console.log(123);

console.log(this.networkStateOptions);

    },

formData:function(oldVal,newVal) {

console.log(123456);

console.log(this.formData);

this.searchData=this.formData;

    }

  },

  methods: {

changeSave() {

console.log(666);

    },

arrChange() {//给表单添加options属性,并赋值监听到的数据

// this.networkStateOptions = this.netState.chainNetworkState;

this.searchForm=networkBaseForm.map(item\=> {

switch(item.label) {

case"网点状态":

item.options=this.networkStateOptions ;

  

break;

  

default:

break;

        }

returnitem;

      });

this.name="ceshi";

console.log(5555);

console.log(this.netState.chainNetworkState);

console.log(this.searchForm);

    },

  

networkCommonData() {

// commonComboData(commonCombo).then(res => {

//   console.log(res);

//   this.commonQuery = res.data.data;

//   this.networkStateOptions = this.commonQuery.chainNetworkState;

//   this.searchForm = networkBaseForm.map(item=> {

//     switch (item.label) {

//       case "网点状态":

//          item.options = this.networkStateOptions;

//         break;

//       default:

//         break;

//     }

//     return item

//       return Object.assign(item, { options: this.networkStateOptions });

//   });

//   console.log(this.networkStateOptions);

//   console.log(this.searchForm);

// });

    }

  }

};

</script\>

image.png
image.png控制台的报错是样式尺寸问题,与该问题无关

阅读 5.6k
3 个回答

上个代码看一下

数据看着确实是回来了的,看看html是怎样渲染的呢

新手上路,请多包涵

问题应该在你的html吧

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