柴先生
柴先生
  • 发布:2022-01-06 15:35
  • 更新:2022-01-07 11:24
  • 阅读:774

【报Bug】APP中父组件向子组件传值,子组件无法接收,并且子组件的mounted()函数也没有执行

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: win10

HBuilderX类型: 正式

HBuilderX版本号: 3.3.5

手机系统: 全部

页面类型: vue

vue版本: vue2

打包方式: 云端

项目创建方式: HBuilderX

测试过的手机:

苹果12 版本:ios15.1.1 魅族17pro 版本:安卓11

操作步骤:

直接粘贴即可复现

预期结果:

期望子组件可以获取到父组件传递的数据

实际结果:

子组件接收到的值为undefined,支付宝小程序和微信小程序都可以接收到数据,安卓APP和iosAPP无法接收

bug描述:

index.vue文件

<template>  
  <view class="home">  
    <HomeList type="home" :list="list" />  
  </view>  
</template>  
<script>  
import { HomeList } from "@/components/homeList";  
export default {  
      components: { HomeList },  
      data() {  
            return {  
                list: [{  
                                     id: 1,  
                                     name: '测试123'  
                                }],  
            };  
      },  
  }  
</script>  

components文件下的homeList.vue

<template>  
     <view :style="type == 'seek' ? 'margin-top: 80rpx' : ''">  
        <!-- 这里type 和 list 显示都是undefined  -->  
         <view>{{ type }}</view>    
         <view>{{ list }}</view>  
     </view>  
</template>  
      <script>  
export default {  
  name: "home-list",  
  props: {  
    list: {  
      type: Array,  
      default: [],  
      required: true,  
    },  
    type: {  
      type: String,  
      default: "home",  
      required: true,  
    },  
  },  
  data() {  
    return {};  
  },  
  mounted() {  
    console.log("-----------------------"); //这里没有打印出来  
  },  
  watch: {  
    list: {  
      handler(newName, oldName) {  
        console.log("++++++++++++++++++++++");  //这里也没有打印出来  
        console.log(newName);  
      },  
      immediate: true,  
      deep: true,  
    },  
  },  
</script>  
2022-01-06 15:35 负责人:无 分享
已邀请:
jxtian

jxtian

运行到h5正常吗?

  • 柴先生 (作者)

    已解决,引入组件应该写成 import HomeList from "@/components/homeList"; 我把 { HomeList } 引起来了

    2022-01-07 11:19

jxtian

jxtian

贴回去看对不对,用 easycom,不用直接import 组件:

<template>  
  <view class="home">  
    <homeList type="home" :list="list" />  
  </view>  
</template>  
<script>  
  // import {  
  //   HomeList  
  // } from "@/components/homeList/homeList";  
  export default {  
    // components: {  
    //   HomeList  
    // },  
    data() {  
      return {  
        list: [{  
          id: 1,  
          name: '测试123'  
        }],  
      };  
    },  
  }  
</script>
  • 柴先生 (作者)

    easycom可以使用,问题已解决,感谢!

    2022-01-07 11:34

  • 柴先生 (作者)

    还有个问题,cover-view组件中,APP端无法使用display:flex;浮动,这个怎么解决?

    2022-01-07 11:36

  • jxtian

    回复 1***@qq.com: 另开一个贴反馈,提供可复现的示例工程

    2022-01-08 11:03

该问题目前已经被锁定, 无法添加新回复