项目场景:
使用element ui中的el-input-number遇到加减失效或者只加减一次就失效的问题
问题描述
父组件:
provide() {
return {
host: () => this
}
},
methods: {
onUpdateProps(node) {
console.log(node,"node")
this.canvas.setValue(node)
},
}
子组件 :
<el-input-number v-model="props.node.fontSize" :size="inputSize" :min="12" :max="100" :step="1" default-value="12" style="width:100%;" @change="host().onUpdateProps(props.node)" />
inject: ['host'],
原因分析:
一开始以为是inject使用有问题,后面删除@change之后依旧会出现这个问题,这才发现原来是传入的model有问题,传入model层级过深导致input-number加减失效了
解决方案:
在data新建一个属性number,在从父组件传入props的时候将props.node.fontsize赋给number,在input-number组件中加减后重新赋给props.node.fontsize,这样就解决了