如何使用另一个反应性对象 (ref) 的值设置反应性对象 (ref) 的值?

2024-03-15

我正在尝试设置 a 的值Form基于另一个反应变量中的数据,称为Product但它似乎不起作用。这Form应将其值设置为Product数据如果可用,如果不可用,则使用null.

这是vue组件代码的一部分:

props: {
    ProductID: {
      type: Number,
      default: null
    }
  },

setup (props) {
const Product = ref();

async function loadProduct(ProductID) { // Runs when `props.ProductID` changes using a watcher
      try {
        const Response = await $axios.get(`/api/product/${ProductID}`);
        Product.value = Response.data; // This is an array of data
      } catch (error) {
        console.log(error);
      }
    }
}


 const Form = ref({
      ProductTitle: Array.isArray(Product.value) && Product.value[0].producttitle ? Product.value[0].producttitle : null,
 ProductText: Array.isArray(Product.value) && Product.value[0].producttext ? Product.value[0].producttext : null,
    )}
}

在 vue devtools 中我可以看到Product填充了数据,但这些值从未分配给Form键 - 它们只是空的。如果Product是反应性的,也是如此Form,为什么这不起作用?


Your Form仅在以下情况下才初始化setup是第一次运行,所以它只是初始化但不会更新。如果你想Form更新时间Product更新,你可以做到computed依赖的财产Product:

const Form = computed(() => ({
  ProductTitle: Array.isArray(Product.value) && Product.value[0].producttitle ? Product.value[0].producttitle : null,
  ProductText: Array.isArray(Product.value) && Product.value[0].producttext ? Product.value[0].producttext : null,
}))

或者您可以手动更新Form in loadProduct,这样每当Product已重新加载,Form也将得到更新:

const Form = ref({})
async function loadProduct(ProductID) { // Runs when `props.ProductID` changes using a watcher
      try {
        const Response = await $axios.get(`/api/product/${ProductID}`);
        Product.value = Response.data; // This is an array of data
        Form.value = {
          ProductTitle: Array.isArray(Product.value) && Product.value[0].producttitle ? Product.value[0].producttitle : null,
          ProductText: Array.isArray(Product.value) && Product.value[0].producttext ? Product.value[0].producttext : null,
        }
      } catch (error) {
        console.log(error);
      }
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用另一个反应性对象 (ref) 的值设置反应性对象 (ref) 的值? 的相关文章

  • Laravel Vue 组件只能传递数字?

    在我的 UserMenu vue 中我写道 export default props nameVal data return 并在blade php中
  • Vue.js[vuex] 如何从突变中调度?

    我有一个要应用于 json 对象的过滤器列表 我的突变看起来像这样 const mutations setStars state payload state stars payload this dispatch filter setRev
  • 无法从 rollupOptions 自动确定入口点

    我正在尝试对使用 vite 和 vue3 创建的前端应用程序进行 dockerize 它不作为容器工作 这是错误响应 无法从 rollupOptions 或 html 文件自动确定入口点 并且没有显式的 OptimizeDeps inclu
  • vue js中的process.env.BASE_URL是什么?

    当我使用 vue cli 安装 vue 时手动选择预设 我偶然发现了 process env BASE URL 我试图在互联网上找到它 但无济于事 我找不到任何像样的解释 这是代码 const router new VueRouter mo
  • Vue:通过 CSS 选择组件的最简洁方法是什么?

    我有一个bar成分 它的使用方式如下
  • 如何在一个页面中使用vuetify.css和bootstrap?

    我想同时使用vuetify min css文件夹和bootstratp min css文件夹 Bootstrap 是在布局页面上定义的 我需要在另一个页面上使用 vuetify min css 有什么办法可以同时使用它们吗 这里有多种解决方
  • 通知用户消息仍在输入中

    我正在使用 Laravel 5 6 7 Socket IO 和 vue js 我没有使用 Pusher 和 redis 下面是我的代码 用于向与我一对一聊天的用户发送消息 var url http localhost 6001 apps M
  • 将数据传递给 vue.js 中的组件

    我正在努力理解如何在 vue js 中的组件之间传递数据 我已经通读了几遍文档并查看了许多 vue 相关问题和教程 但我仍然不明白 为了解决这个问题 我希望能帮助完成一个非常简单的例子 在一个组件中显示用户列表 完成 单击链接 完成 时将用
  • NativeScript + Vue.js + FontAwesome

    我正在尝试使用 FontAwesome 图标集通过 NativeScript 和 Vue js 构建应用程序 但我无法找出问题 因为我什至没有错误提示消息 我忠实地关注文档 但没有任何反应 我到处寻找 但什么也没有 如果你能帮我解决这个问题
  • 机车滚动在我的 Nuxt3 项目中不起作用

    我正在使用机车滚动和 nuxt3 这是我的回购协议 https github com cyprianwaclaw nuxt git https github com cyprianwaclaw nuxt git 我导入了async loco
  • 是否可以从 URL 中包含 Vue.js 组件?

    我们正在设计一个插件架构 并且很好奇是否有一种方法允许通过 URL 将第 3 方插件包含为 Vue 组件 如何从远程 url 导入 vue 文件 例如 我尝试遵循 Alex Jover Morales 的方法来导入异步组件异步 vue js
  • Vue.js继承调用父方法

    是否可以在 Vue js 中使用方法重写 var SomeClassA Vue extend methods someFunction function ClassA some stuff var SomeClassB SomeClassA
  • (Vue) Ant Design 使用 v-decorator 以 ant 形式显示客户端和服务器端验证

    我用过蚂蚁设计的表单组件v decorators用于验证表单 我想显示客户端 我当前已完成的 v decorator 规则验证 以及服务器端表单数据验证 将此视为示例登录表单
  • 如何在 vue.js 中将文件和数据附加到 FormData

    我正在尝试将上传的文件和数据值附加到 vue js 中的 FormData 中 在我的控制器中 只能评估文件请求 data return file categ 在我的方法中 var form new FormData var file th
  • VueJS vue-spinner 属性或方法“加载”未定义

    你好 我正在尝试设置view spinner https www npmjs com package vue spinner 但是出现错误 vue esm js 591 Vue warn 属性或方法 loading 未在实例上定义 但在渲染
  • Vuex 2.0 调度与提交

    有人可以解释一下什么时候使用调度和提交吗 我理解提交会触发突变 调度会触发操作 然而 派遣不也是一种行动吗 正如你所说 dispatch触发一个动作 并且commit触发突变 以下是如何使用这些概念 你总是用 dispatch来自路线 组件
  • Vue.js:折叠/展开父级中的所有元素

    我需要为我的 Vue 组件 一些可折叠面板 添加 展开 折叠全部 功能 如果用户单击折叠按钮 然后单击某个面板并将其展开 然后单击折叠按钮不会做任何事因为观看的参数不会改变 那么如何正确实现此功能 按钮必须始终折叠和展开组件 我准备了简单的
  • 从 Axios 响应中解析 XML,推送到 Vue 数据数组

    在我的 Vue 应用程序中 我使用 Axios 获取 XML 文件并使用parseString将 XML 解析为 JSON 然后我需要通过result到 Vue 数据 this events My console log将解析后的 XML
  • 使用 axios get 请求发送对象[重复]

    这个问题在这里已经有答案了 我想发送一个带有对象的获取请求 对象数据将在服务器上用于更新会话数据 但该对象似乎没有正确发送 因为如果我尝试将其发送回去打印出来 我只会得到 N 我可以像这样使用 jQuery 来完成它 它可以工作 get m
  • Vue 多个组件位于一个包/文件中

    假设我想创建一个 UI 包 如何将多个组件放入一个 JS 文件中 通常我会将不同的组件放在不同的文件中 import ButtonText from ButtonText vue import ButtonIcon from ButtonI

随机推荐

  • C++中bool数据类型的比较

    The bool数据类型通常表示为0 as false and 1 as true 然而 也有人说true值可以用除以下以外的值表示1 如果后面的语句是true 那么下面的表达式可能是不正确的 bool x 1 if x 1 Do some
  • 将图标与按钮标签内的文本顶部对齐

    如何将按钮标签内的图标与文本顶部对齐 它当前位于文本的左侧 我不知道怎么办 这是代码 div class nav div
  • VS2012 中的 BeforeBuild 和其他目标发生了什么?

    我试图让一些预构建步骤在 Visual Studio 2012 中的 C 项目中工作 但它们不会被调用 虽然我很确定相同的技术在 Visual Studio 2010 中也可以使用 命令行构建的行为完全相同 这是项目文件的结尾 该文件是使用
  • json_encode() 返回 false

    这是我第一次面对数组结果布尔值的 var dumping json encode 我有一个由反序列化产生的数组 我 var dumped 它并确保它是一个有效的数组 结果如下 这只是一部分 而不是整个调试视图 array size 3 id
  • 如何直接访问azure应用程序服务实例

    我是天蓝色的新手 我有一个 Asp Net MVC 应用程序托管在 azure 应用程序服务 上 有两个实例 我的应用程序使用本地缓存 有时我需要清除这个缓存 但问题是 当我清除缓存时 我实际上只针对一个特定实例执行此操作 而其他实例仍然保
  • Symfony2创建服务[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 symfony2 文档中曾经有关于如何创建服务 my mailer 的操作方法 但我似乎无法在任何地方
  • MySQL 8.0.11 由于 caching_sha2_password 连接错误

    当我尝试连接到 MySQL Workbench 上的服务器时 收到错误消息 您的连接尝试无法以 localhost 3306 身份从主机到服务器的用户 root 认证插件caching sha2 password无法加载 指定的模块无法找到
  • WiX 安装程序:使用 xslt 和 heat.exe 来更新属性

    我正在尝试为 Windows 服务创建 WiX 安装程序 并且我读到需要将所有文件的 KeyPath 设置为 no WiX 脚本中的 exe 除外 我目前正在使用 Heat exe 生成目录和文件结构 这是我的命令 WIX bin heat
  • 绘制路径大于最大位图尺寸

    我想画一条比canvas getMaximumBitmapWidth and or canvas getMaximumBitmapHeight 在可缩放的视图内 特别是在较旧的设备 Android 9 及更早版本 上 这会导致 路径太大而无
  • 当标签已存在于远程时​​,Git 强制推送标签

    我已经将标签推送到遥控器上 当另一个用户创建相同的标签并尝试推送时 推送将失败 因为该标签已存在于远程上 但我想如果我这么做了 f force tag push 它应该可以工作 但我所看到的并非如此 我想我必须这样做 Create tag
  • 是否应该迁移变更集的用户名和时间戳?

    以下文字关于OpsHub 迁移实用程序页面 https visualstudiogallery msdn microsoft com 28a90a17 d00c 4660 b7ae 42d58315ccf2表示用户名和时间戳将嵌入到迁移的变
  • 在 BIDS 中使用存储过程作为 OLE DB 源

    我正在测试 SSIS 包和存储过程 因为我只是一个初学者 我需要做的是使用在源数据库上安装的存储过程来返回数据集 然后我需要一个 ssis 包来使用存储过程返回的数据集作为 OLE DB 源来填充第二个目标表 基本上我有两张桌子 测试源 测
  • 可变参数模板的可扩展性

    我正在使用 C 11 开发一个大规模软件基础设施 该基础设施广泛使用了可变参数模板 我的问题如下 这种方法的可扩展性如何 首先 可变参数模板可以采用的参数数量是否有上限 其次 当使用许多参数时 并且 通过扩展 这些参数的许多组合将产生模板化
  • 在 Java 中用 Scala 中的 Option 包装返回 null 的方法?

    假设我有一个方法session get str String String但你不知道它会返回一个字符串还是一个 null 因为它来自 Java 在 Scala 中是否有更简单的方法来处理这个问题而不是session get foo null
  • 客户端加密的有效用例有哪些?

    我刚刚读到斯坦福大学 Javascript 加密库 http crypto stanford edu sjcl jsfiddle 示例 http jsfiddle net kRcNK 它完全用 JavaScript 支持 SHA256 AE
  • DICOM 和图像位置患者

    我试图弄清楚 DICOM 图像位置 0020 0032 是绝对坐标还是只是我拥有的任何切片方向的坐标 例如 我有两个平面 一个矢状平面和一个冠状平面 与 DICOM 标头中的 x y z 形式的相应图像位置 以毫米为单位 交错 我的问题是
  • 应用内结算,签名验证失败

    当我尝试获取订阅时 出现以下错误 签名认证失败 签名与数据不匹配 应用内结算警告 购买签名验证FAILED 不添加项目 我的代码是 String base64EncodedPublicKey MY KEY compute your publ
  • 我如何判断给定的 hWnd 是否仍然有效?

    我正在使用生成 Internet Explorer 实例的第三方类 该类有一个属性 hWnd 它返回进程的 hWnd 稍后 我可能想重用应用程序的实例 如果它仍然存在 因此我需要告诉我的帮助器类附加到它 在此之前 我想知道给定的 hWnd
  • 为什么我们需要绑定 std::cin 和 std::cout?

    默认情况下 标准输入设备与标准输出设备以以下形式绑定在一起 std cin tie std cout 这保证了在调用输入之前输出缓冲区已被刷新 所以我尝试使用来解开它们std cin tie 0 但看起来 结果 与并列的没有什么区别 inc
  • 如何使用另一个反应性对象 (ref) 的值设置反应性对象 (ref) 的值?

    我正在尝试设置 a 的值Form基于另一个反应变量中的数据 称为Product但它似乎不起作用 这Form应将其值设置为Product数据如果可用 如果不可用 则使用null 这是vue组件代码的一部分 props ProductID ty