【问题标题】:Vue Composition Api - watch property passed to external composition functionVue Composition Api - 监视传递给外部组合函数的属性
【发布时间】:2021-09-26 13:16:01
【问题描述】:

我想查看从设置传递给组合函数的道具:

async setup(props) {
  const { data } = await useOperation(query, props.isEdit);
}

而且每次isEdit的值发生变化,我都想在手表里做点什么:

export const useOperation = async (query, isEdit) => {
  const reload = ref(isEdit)
  watch(
    () => reload.value,
    (result) => {
      console.log(result)
    }
  )
  const { data } = await fetch(query)

  return {
    data
  }
}

props.isEdit 更改时,不会触发手表。我该如何完成这项工作?

【问题讨论】:

    标签: javascript vue.js vue-composition-api


    【解决方案1】:

    你应该直接在setup看道具变化:

    async setup(props) {
      const { data } = await useOperation(query, props.isEdit);
    
      watch(
        () => props.isEdit,
        (result) => {
          console.log(result)
        }
      )
    }
    

    通过运行:

    watch(
      () => reload.value,
      (result) => {
        console.log(result)
      }
    )
    

    您正在查看reload 变量而不是props.isEdit,并且由于useOperationsetup 期间只运行一次,并且reload 不会暴露在任何地方,因此它的值永远不会改变。


    或者,如果您确实想在useOperation 中观看,请确保将props 作为参数传递,watch 传递给props.isEdit

    export const useOperation = async (query, props) => {
      watch(
        () => props.isEdit,
        (result) => {
          console.log(result)
        }
      )
    ...
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-03-19
      • 2018-05-13
      • 2022-01-26
      • 2018-08-03
      • 1970-01-01
      • 2013-01-13
      • 1970-01-01
      • 2022-11-14
      相关资源
      最近更新 更多