React 的props传递是否只能传递对象,而不能传递数组?
我有如下的数组数据:
const treeData: DataNode[] = [ { title: 'parent 0', key: '0-0', children: [ { title: 'leaf 0-0', key: '0-0-0', isLeaf: true, selectable: false }, { title: 'leaf 0-1', key: '0-0-1', isLeaf: true, selectable: false }, ], selectable: false, icon: false, switcherIcon: 'o', }, { title: 'parent 1', key: '0-1', children: [ { title: 'leaf 1-0', key: '0-1-0', isLeaf: true, selectable: false }, { title: 'leaf 1-1', key: '0-1-1', isLeaf: true, selectable: false }, ], selectable: false, icon: false },];
传递数据到:
...<TreeDirectory {...treeData}></TreeDirectory>
我在组件内接受的时候,会变成对象:
所以,是否React 的props传递是否只能传递对象,而不能传递数组?如果想要传递数组应该怎么传递呢?对treeData 进一步封装是吗?
<TreeDirectory data={treeData}></TreeDirectory>
类似这样传数组
就是说,用一个变量传数组
如果类似 <TreeDirectory {...treeData}></TreeDirectory>
这样传参,等价于 <TreeDirectory 0={treeData[0]} 1={treeData[0]}></TreeDirectory>
,当然接收到的是个对象
根据React的官方文档,props传递的数据类型可以是对象、数组、函数等,因此可以传递数组数据。
在你的例子中,你可以直接将数组传递给组件,例如:
<TreeDirectory treeData={treeData}></TreeDirectory>
在组件内部,你可以通过解构赋值来获取数组数据:
const treeData = props.treeData;
或者使用spread语法:
<TreeDirectory {...props.treeData}></TreeDirectory>
对于你的问题,是否React 的props传递只能传递对象,而不能传递数组?是的,React的props传递只能传递对象或其子属性,而不能直接传递数组。如果想要传递数组,你可以在传递前对数组进行封装。
问题内容: 我正在考虑我的应用程序的解决方案。这是一种情况:我有一个类,该类的方法将ObjectA作为输入参数并调用几个小方法,这些方法中的每个方法都需要ObjectA的某些部分(它们不重叠,即需求和,需求等等)。 …)现在的问题是:鉴于一般的良好代码实践和性能,将ObjectA传递给这些方法中的每一个方法更好,以便它们可以自己提取所需的值,还是仅传递它们的值更好?我的意思是: 要么 感谢您的任何
本文向大家介绍String类型传递是值传递,char[]类型传递是引用传递的实现,包括了String类型传递是值传递,char[]类型传递是引用传递的实现的使用技巧和注意事项,需要的朋友参考一下 如下所示: 结果是:str任然是hello,ch的第一个元素a变为c 以上就是小编为大家带来的String类型传递是值传递,char[]类型传递是引用传递的实现的全部内容了,希望对大家有所帮助,多多支持呐
问题内容: 我尝试将函数传递给子组件。当用户单击每个子组件时,将调用onclick函数。此onclick函数将写入父组件。 父组件: 子组件: 在这一行: 它说没有定义handleClick …如何解决这个问题? 感谢您的回答。 问题答案: 您需要将Agents绑定到AgentsList:这是您的代码的一个简单示例,我不得不删除一些东西,但是您明白了: http://jsfiddle.net/vh
主要内容:1、值传递,2、引用传递,3、输出传递通过前面的学习我们知道,在调用带有参数的函数时,需要将参数传递给函数。在介绍这几种传递方式之前,我们先来介绍一下形式参数(形参)和实际参数(实参)这两个概念: 形式参数:在定义函数阶段参数列表中定义的参数称之为形式参数,简称形参,可以将它看作变量的名称,它没有具体的值,只是用来接收函数调用时传递过来的数据; 实际参数:在函数被调用时传递给函数的参数称之为实际参数,简称实参,可以将它看作变量的值,用
问题内容: 我似乎无法获得任何一致的信息。不同的消息来源似乎说了不同的话,而古老的php.net本身( 似乎 )并未明确指出这一点- 尽管我必须承认,我只是快速浏览了一下。 如果我要传递“重”对象,则需要通过引用传递,但我不想继续输入: 如果我能摆脱 那么标准怎么说呢? 问题答案: 对象通过引用传递(和分配)。无需使用操作员地址。 当然,我键入的内容过于简单,但将适合您的目的。该文档指出: 经常提
问题内容: 我是android和java的初学者。我不明白什么时候对象传递。对象传递当然需要实现Serializable。 0.什么时候使用Serializable?它是什么? 1.什么是对象和捆绑类 2.使用Object和Bundle传递对象时 3.是否支持Object和Bundle对象都是数据类型的对象? 请帮助我。谢谢 问题答案: 您的要求确实很模糊,但是可序列化的对象可以转换为可以反序列化