vue父组件传给子组件的值,子组件只能接收一次i?

父组件传给子组件的值。在父组件中这个值改变了,但是在子组件中这个prop的值还是第一次父组件传给的值。
有遇到这个问题的吗?

阅读 7.7k
2 个回答

你可以通过监听 props 中定义的值来更新组件值,监听组件内的值更新组件绑定的值
稍微写了个二次封装组件的 demo 可以参考下

<template>
    <input type="text" v-model="currentValue" @change="change" />
</template>

<script>
export default {
  props: {
    value: {
      type: String
    }
  },
  data() {
    return {
      currentValue: this.value
    }
  },
  watch: {
    value(val) {
      this.currentValue = val
    },
    currentValue(val) {
      if (this.value !== val) {
        this.$emit('input', val)
      }
    }
  },
  methods: {
    change(e) {
      this.$emit('change', e)
    }
  }
}
</script>

完美解决,赞

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