在子组件里data定义一个变量,并用 prop 的值初始化,结果是空的
来源:7-6 购买详情页 - 总价计算(1)

27网络
2017-07-05
子组件需要处理父组件传过来的值,
定义一个局部变量,并用 prop 的值初始化时,变量一直未空,不知道是哪里的问题
父组件
<number-input v-model.number="price" :initNumber="price"></number-input>
子组件
<template> <input type="text" v-model="number" @keyup="onKeyup"> </template> <script> export default { props: { initNumber: { default: 1234 } }, data () { return { number: this.initNumber } }, methods: { onKeyup () { this.number = (this.number + '').replace(/^0+|\D/g, '') this.$emit('input', this.number) } } } </script>
写回答
1回答
-
fishenal
2017-07-07
不能这样写,props传入的属性已经是这个组件的属性了,所以initNumber和number是同样的意思,没必要再转一次。
如果非要转,只能在computed计算属性里转:
computed: {
number () {
return initNumber
// 一般做一些处理,比如 return initNumber + 1
}
}
当然如果你不是做什么数据处理也没必要原封不动的换个变量值
122017-07-11
相似问题