微信小程序:uni-app列表数据渲染子组件修改数据sync/v-model无效的问题

简介: 微信小程序:uni-app列表数据渲染子组件修改数据sync/v-model无效的问题

有如下一个列表,将数据循环传递给子组件,实现业务解耦,组件拆分

Vue的正常逻辑是,父组件和子组件的数据传递的是一个对象,属于引用传递,可以直接在子组件中修改数据,父组件中也会变化,它们操作的是同一个数据。

uni-app子组件中修改 H5正常,转为微信小程序后修改失败

解决办法是:将修改的数据以事件的方式传递给父组件,在父组件中修改数据

列表 List.vue

<template>
  <view class="dish-list">
    <Item
      v-for="item in list"
      :item="item"
      @on-change="handleChange"
    ></Item>
  </view>
</template>
<script>
import Item from './Item.vue'
export default {
  components: {
    Item,
  },
  data() {
    return {
      list: [
        {
          id: 1,
          count: 0,
        },
      ],
    }
  },
  methods: {
    handleChange(item, count) {
      let index = this.list.findIndex((row) => row.id == item.id)
      // 直接修改顶层数据
      this.list[index].count = count
    },
  },
}
</script>

子组件 Item.vue

<template>
  <view @click="handleClick">{{item.count}}</view>
</template>
<script>
export default {
  props: {
    item: {
      type: Object,
    }
  },
  methods: {
    handleClick() {
      // bug: uni-app子组件中修改 H5正常,转为微信小程序后修改失败
      // this.item.count++
      // 修复:将数据修改事件交给父组件处理  
      let count = this.item + 1
      this.$emit('on-change', this.item, count)
    }
  },
}
</script>
<style>
</style>

总结:uni-app使用的vue语法,转为微信小程序之后,部分js语法可能会无效

相关文章
|
3天前
|
小程序 JavaScript 开发工具
微信小程序——全局数据共享
微信小程序——全局数据共享
|
2天前
详细教程:扫码提交表单后,数据直接推送到企业微信、钉钉、飞书群聊
在草料制作的表单中,填表人扫码填写并提交数据后,这些信息可以立即通过企业微信、钉钉或飞书自动推送到相应的群聊中,实现即时共享和沟通,提升团队协作效率。
|
26天前
|
存储 SQL JSON
【Azure Logic App】微软云逻辑应用连接到数据库,执行存储过程并转换执行结果为JSON数据
【Azure Logic App】微软云逻辑应用连接到数据库,执行存储过程并转换执行结果为JSON数据
【Azure Logic App】微软云逻辑应用连接到数据库,执行存储过程并转换执行结果为JSON数据
|
26天前
|
缓存
【Azure Function】Function App代码中使用Managed Identity认证获取Blob数据时遇见400报错
【Azure Function】Function App代码中使用Managed Identity认证获取Blob数据时遇见400报错
【Azure Function】Function App代码中使用Managed Identity认证获取Blob数据时遇见400报错
|
28天前
|
小程序 JavaScript 前端开发
微信小程序开发时数据是否是双向数据绑定的
微信小程序开发时数据是否是双向数据绑定的
|
1月前
|
小程序 JavaScript Java
微信小程序+SpringBoot接入后台服务,接口数据来自后端
这篇文章介绍了如何将微信小程序与SpringBoot后端服务进行数据交互,包括后端接口的编写、小程序获取接口数据的方法,以及数据在小程序中的展示。同时,还涉及到了使用Vue搭建后台管理系统,方便数据的查看和管理。
微信小程序+SpringBoot接入后台服务,接口数据来自后端
|
26天前
【Azure 事件中心】在Azure Function App中消费Event Hub数据,时常出现EventReceiveError
【Azure 事件中心】在Azure Function App中消费Event Hub数据,时常出现EventReceiveError
|
2月前
|
JavaScript 前端开发
uni-app组件 子组件onLoad、onReady事件无效
突然发现在项目中,组件 子组件的onLoad、onReady事件无效 打印也出不来值 怎么处理呢?
296 1
|
2月前
|
小程序 开发者
【微信小程序】 微信小程序报错不在以下request合法域名列表中
【微信小程序】 微信小程序报错不在以下request合法域名列表中
420 0
|
2月前
|
算法 安全 数据安全/隐私保护
支付系统---微信支付09------数字签名,现在Bob想要给Pink写一封信,信件的内容不需要加密,怎样能够保证信息的完整性,使用信息完整性的主要手段是摘要算法,散列函数,哈希函数,H称为数据指纹
支付系统---微信支付09------数字签名,现在Bob想要给Pink写一封信,信件的内容不需要加密,怎样能够保证信息的完整性,使用信息完整性的主要手段是摘要算法,散列函数,哈希函数,H称为数据指纹