Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vue.js 如果值没有',则禁用输入;t从mapState的cloneDeep更改_Vue.js_Vuex_Nuxt.js - Fatal编程技术网

Vue.js 如果值没有',则禁用输入;t从mapState的cloneDeep更改

Vue.js 如果值没有',则禁用输入;t从mapState的cloneDeep更改,vue.js,vuex,nuxt.js,Vue.js,Vuex,Nuxt.js,我有一个页面,用户可以编辑他们的设置。如果用户未对表单进行任何更改,但由于某些原因,该按钮始终处于启用状态,则我希望禁用“提交”按钮。有什么想法吗 页面/设置/_id.vue </template> <b-button :disabled="userCopy == user"> Continue </b-button> </template> <script> import { ma

我有一个页面,用户可以编辑他们的设置。如果用户未对表单进行任何更改,但由于某些原因,该按钮始终处于启用状态,则我希望禁用“提交”按钮。有什么想法吗

页面/设置/_id.vue

</template>
    <b-button :disabled="userCopy == user">
        Continue
    </b-button>
</template>

<script>
import { mapState } from 'vuex'
import _ from 'lodash'

export default {
  data() {
    return {
      userCopy: { offers: {}, legal: {} }
    }
  },

  computed: {
    ...mapState({ user: (state) => state.users.user })
  },

  created() {
    this.$store
      .dispatch('users/fetchUser', this.$route.params.id)
      .then((response) => {
        this.userCopy = _.cloneDeep(response)
      })
  },
  
}
</script>

继续
从“vuex”导入{mapState}
从“lodash”导入
导出默认值{
数据(){
返回{
用户副本:{提供:{},法律:{}
}
},
计算:{
…mapState({user:(state)=>state.users.user})
},
创建(){
这是一家$1的商店
.dispatch('users/fetchUser',this.$route.params.id)
。然后((响应)=>{
this.userCopy=\ uu0.cloneDeep(响应)
})
},
}

您正在检查两个对象之间的相等性,但这不起作用

乙二醇

这个问题有很多解决方案,从现在开始就是这样

因此,您可以通过将逻辑更改为:

:disabled="JSON.stringify(userCopy ) === JSON.stringify(user)"
我仍然建议检查对象的已知值,看看它们是否不同

:disabled="JSON.stringify(userCopy ) === JSON.stringify(user)"