Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >使用扩展运算符时,react.children + react.cloneElement中断

使用扩展运算符时,react.children + react.cloneElement中断
EN

Stack Overflow用户
提问于 2017-03-20 04:40:13
回答 1查看 262关注 0票数 1

我正在使用React.children (对于某个主路由下的所有子路由)使用react路由器呈现一些子路由。

这件事对我来说很好,但是我以前是在解构我送给孩子们的道具-

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
const { prop1, prop2, prop3 } = this.props;

 const children = React.Children.map(this.props.children, (child) => {
  return React.cloneElement(child, {
    prop1,
    prop2,
    prop3
  });
});

这很好,但是最近我开始得到更多的道具,所以我想我可以通过把道具传播到这样的子对象中来让它变得更容易:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 const children = React.Children.map(this.props.children, (child) => {
  return React.cloneElement(child, {...this.props});
})

这似乎没问题,但我现在得到了一些奇怪的行为,因为我不能再看到我的routeParams (**this.props.routeParams**) 从反应路由器。

似乎扩展操作符应该做同样的事情,只是使用更少的代码,除非我误解了什么。

当我将它切换回非扩展操作符时,这个方法很好。知道这是为什么吗?

EN

回答 1

Stack Overflow用户

发布于 2017-03-20 05:23:26

React.Children.map 回调函数的第一个参数​将设置回调(检查这里的文档)this 上下文

当将React.Children.map回调的第一个参数传递给回调时,您将它的React.Children.map上下文设置为值child

所以,与其将this.props传递给cloneElement,不如传递child.props.routeParams.

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42903869

复制
相关文章
【分享】扩展MPSoC中断
MPSoC是带ARM处理器和FPGA(PL)的SoC,包含4核A53及其常用外部模块(PS)。A53(PS)使用Arm GIC-400,属于GICv2架构。如果想了解GIC-400的具体细节,请参考文档APU GIC: CoreLink GIC-400 Generic Interrupt Controller, DDI 0471B, r0p1。
hankfu
2021/04/30
1.6K0
【分享】扩展MPSoC中断
让你 React 组件水平暴增的 5 个技巧
最近看了一些 Ant Design 的组件源码,学到一些很实用的技巧,这篇文章来分享一下。
神说要有光zxg
2023/08/29
5650
让你 React 组件水平暴增的 5 个技巧
React Props Children 传值
背景是在使用 umijs 框架时,它提供一个根节点 layout。我想在根节点传值到 Route 组件中却不得其法,后来查阅 issues 得到解答。
数媒派
2022/12/01
1.9K0
ES6——扩展运算符使用
最近又开始把大量的时间花费在了夯实前端基础上了,看了很多的前端规范,书籍,并且敲了大量的前端代码。系统的在补习自己的前端基础,于是乎可能是日久生情,我对javascript这门语言的感情也在慢慢加深。系统的学习ES6标准一定是学习前端必要的一件事。ES6中增加了不少新特性新语法,一边学习,一边记录。
Originalee
2018/08/30
3830
四个真秀React用法,你值得拥有
我们希望用户在点击查询按钮的时候, 表格可以将当前页码调整为第一页,同时加载表格的数据,比如像下面代码所示
前端进击者
2023/02/28
2.3K0
JavaScript ES6 扩展运算符(...)的使用
作用:将一个数组转为用逗号分隔的参数序列。 比如: var arr = [1,2,3] 则 ...arr即 1,2,3 1、浅拷贝 var arr = [1,2,3] var copyArr = [...arr] // [1,2,3] 2、向集合中添加元素 var arr = [1,2,3] 若想得到一个新的集合 [1,2,3,4,5] 可以写成 var newArr = [...arr,4,5] 顺序不限,若想得到一个新的集合[4,1,2,3,5] 可以写成 var newArr = [4,...a
听着music睡
2021/11/03
6040
JavaScript 学习-17.扩展运算符(...)的使用
前言 JavaScript ES6新增了扩展运算符的语法,扩展运算符(spread)是三个点(…)。 该运算符主要用于,将一个数组转为用逗号分隔的参数序列, 通常用于函数的调用传参。 数组合并 把数组转为分割的参数序列 let a = ["hello", "world", "yoyo"]; console.log(...a) // hello world yoyo 可以用于2个数组的合并 let a = ["hello", "world", "yoyo"]; let b = [2, 3, 4] c = [
上海-悠悠
2022/05/23
5720
java之扩展运算符
当使用扩展运算符时,变量在参与赋值运算时会把结果自动强制转换为当前变量的类型,比如:
西西嘛呦
2020/08/26
5180
天河2号-保持使用yhrun/srun时连接不中断 (screen 命令教程 )
  当我们使用天河机进行并行程序实验的时候,都会使用到yhrun/srun命令。在超算环境下,yhrun 命令用来进行提交交互式作业,有屏幕输出。但是容易受到网络波动影响导致断网或者关闭窗口最终导致作业中断。
西湖醋鱼
2020/12/30
1.5K0
ES6扩展运算符
在ES6(ECMAScript 2015)中,引入了扩展运算符(Spread Operator),它使用三个点(...)语法来展开一个可迭代对象(如数组或字符串)或将对象转换为参数序列。扩展运算符提供了一种简洁和灵活的方式来展开和组合数据。
堕落飞鸟
2023/05/22
2220
React的顶层API有哪些?
React.Children功能:可以遍历访问子元素,同时可以访问到属性 this.props.children ,无法访问到的数据。
Learn-anything.cn
2021/11/27
1.1K0
VMIVME-5010 GE Fanuc VMIC中断扩展板
VMIC系列设备的特点是其设计与功能电路板完全相似,但具有独立的功能,如模数转换器板、输入和输出模块以及中央处理器。这些设备都是由通用电气公司的工业自动化部门作为产品制造的,尽管它们被撤出生产,然后由阿巴科系统公司开发。
用户10534454
2023/05/08
2650
VMIVME-5010 GE Fanuc VMIC中断扩展板
[PHP] 使用curl扩展POST或者PUT时数据不全和连接中断的排查
在项目中使用到了curl扩展进行PUT传递数据到另一个接口,但是看到的现象是有时候偶发数据是空的 .
唯一Chat
2020/10/27
6850
JS中函数扩展运算符... 13
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <script> /*1.扩展运算符在等号左边, 将剩余的数据打包到一个新的数组中 注意点: 只能写在最后*/ let [a, ...b] = [1, 3, 5]; console.log(a,b); //2.扩展运算符在等号右边, 将数组中
贵哥的编程之路
2020/10/28
2.4K0
JS中函数扩展运算符... 13
[PHP] php使用curl扩展时的两个超时设置
用来告诉PHP脚本在成功连接服务器前等待多久(连接成功之后就会开始缓冲输出),这个参数是为了应对目标服务器的过载,下线,或者崩溃等可能状况;
唯一Chat
2020/10/27
1.2K0
Python复合赋值运算符使用方法和分类【代码+扩展讲解】
复合赋值运算符可能刚一听觉得有点拗口,但是一旦提到赋值的话就会有等号=运算符号,那么什么是复合呢,看看下面的的表格大家就会很清楚,在所有的数学运算符的右边都加上了=等号运算符,这种写法的运算符就叫做复合赋值运算符。
python自学网
2022/03/08
1.4K0
Python复合赋值运算符使用方法和分类【代码+扩展讲解】
selenium启动firefox时加载扩展
    有些时候,我们测试需要用到插件或者已经导入的证书(比如金融和安全加密行业),而selenium启动firefox时会打开一个新的,不含有任何插件和个人证书的firefox(等同于全新安装后第一次打开的那个firefox)这种情况下,我们就要用firefoxprofile了。
流柯
2018/08/30
1.3K0
es6 - spreed & rest 【... 扩展运算符】
往apply的第二个参数处传入一个数组,数组在apply内部就会被一一展开成一个参数列表,log接收到的就是这个展开的参数列表,
xing.org1^
2019/05/14
9010
es6 - spreed & rest 【... 扩展运算符】
深入理解扩展运算符实现原理
扩展运算符(spread)是三个点(...),用于取出参数对象中的所有可遍历属性,浅拷贝到当前对象之中。
winty
2021/05/18
1.2K1
深入理解扩展运算符实现原理
(九)... 扩展运算符的基本知识
🐆一、跟数组一起使用 展开一个数组 let arr1 = [1, 3, 5, 7, 9] let arr2 = [2, 4, 6, 8, 10] console.log(...arr1) 链接数组 let arr1 = [1, 3, 5, 7, 9] let arr2 = [2, 4, 6, 8, 10] console.log([...arr1, ...arr2]) 🐼二、函数传参 接收不固定的值 function sum(...nums) { // 求和累加 re
老怪兽
2023/02/22
2690
(九)... 扩展运算符的基本知识

相似问题

如何正确键入React.Children和React.cloneElement?

30

使用运算符“<”时NLog中断

11

使用'%‘运算符时“返回”不中断函数

13

使用OR运算符(C)时,for()循环中断

19

当子组件不是DOM元素时如何调整react.children的react.children事件

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文