Vue.js 如果值没有',则禁用输入;t从mapState的cloneDeep更改
我有一个页面,用户可以编辑他们的设置。如果用户未对表单进行任何更改,但由于某些原因,该按钮始终处于启用状态,则我希望禁用“提交”按钮。有什么想法吗 页面/设置/_id.vueVue.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
</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)"