小程序第七讲 repeat中使用组件,组件中无法取到props传入的值

小程序Repeat组件传值攻略
本文针对初学者在使用wepy框架开发小程序时,遇到的repeat循环中子组件无法获取父组件传值的问题,提供了两种解决方案:静态传值转换为字符串类型及传入绑定数值的对象形式,帮助读者有效解决数据传递难题。

小程序第七讲 repeat中使用组件,组件中无法取到props传入的值

写在前面的话

上一篇我们讲到了代码格式化导致布局显示异常这个问题的解决方式有两种,这一章我们主要讲解如何搞定组件间传值取不到数据的问题。

问题出现的场景

对于这个场景对于初学wepy的小伙伴们来说肯定会遇到的,比如在repeat里面循环绑定一个数值类型的变量传递给子组件,子组件在接收这个数值的时候出现取不到的情况,这种情况仅限在使用的时候,数值绑定却没有问题

下面提供两种解决方案
1.静态传值只接收字符串类型
2.传入含有绑定数值的对象

静态传值只接收字符串类型

上次我们讲组件传值的时候提到过静态传值和动态传值

静态传值

那么如果你传入的是Number类型的,只能进行数值绑定,是无法在子组件中使用变量的。
所以需要在父组件中先对类型进行转换变成String类型的

传入含有绑定数值的对象

动态传值

你需要把你的id包在一个对象里面进行传递
比如你要传id
那么你就把它定义为{id:“xx”}这样你就可以在子组件中进行使用啦

结束语

喜欢加个关注支持一下后续会有更多更新内容

在 Vue 和 React 中,组件之间的通信通常通过 `props` 传递数据。当一个数组通过 `props` 传递给子组件时,子组件可以通过 `props` 访问该数组的具体。然而,当数组通过 `ref` 包装后传递时,子组件需要解包 `ref` 才能访问其内部。 --- ### Vue 中访问通过 props 传入的 ref 数组 在 Vue 3 中,如果父组件通过 `ref` 包装数组并作为 `props` 传入组件,子组件需要使用 `toRefs` 或直接访问 `.value` 来获取数组的实际。这是由于 `ref` 是一个带有 `.value` 属性的响应式对象。 #### 示例代码 ```vue <!-- 父组件 --> <template> <ChildComponent :items="items" /> </template> <script setup> import { ref } from 'vue' import ChildComponent from './ChildComponent.vue' const items = ref([1, 2, 3]) </script> ``` ```vue <!-- 子组件 --> <template> <div v-for="item in items" :key="item">{{ item }}</div> </template> <script setup> const props = defineProps({ items: { type: Array, required: true } }) </script> ``` 在此示例中,`items` 是一个 `ref` 包装的数组。由于 Vue 3 的响应式系统会自动解包 `ref`,因此在子组件中可以直接使用 `props.items` 访问其。 --- ### React 中访问通过 props 传入的 ref 数组 在 React 中,`ref` 通常用于引用 DOM 元素或类组件实例。如果需要通过 `props` 传递一个数组并通过 `ref` 包裹,通常需要手动解包。React 中的 `ref` 通常不会自动解包,因此需要显式访问 `.current` 属性。 #### 示例代码 ```jsx // 父组件 import React, { useRef } from 'react' import ChildComponent from './ChildComponent' function ParentComponent() { const itemsRef = useRef([1, 2, 3]) return <ChildComponent itemsRef={itemsRef} /> } ``` ```jsx // 子组件 import React from 'react' function ChildComponent({ itemsRef }) { return ( <div> {itemsRef.current.map((item, index) => ( <div key={index}>{item}</div> ))} </div> ) } ``` 在此示例中,`itemsRef` 是一个通过 `useRef` 创建的 `ref` 对象,子组件通过访问 `itemsRef.current` 获取数组的实际。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值