当前位置: 首页 > 面试题库 >

销毁对象并忽略结果之一

井疏珂
2023-03-14
问题内容

我有:

const section = cloneElement(this.props.children, {
  className: this.props.styles.section,
  ...this.props,
});

在内部this.props,我有一个styles我不想传递给克隆元素的属性。

我能怎么做?


问题答案:

您可以使用对象rest / spread语法:

// We destructure our "this.props" creating a 'styles' variable and
// using the object rest syntax we put the rest of the properties available
// from "this.props" into a variable called 'otherProps' 
const { styles, ...otherProps } = this.props;
const section = cloneElement(this.props.children, {
  className: styles.section,
  // We spread our props, which excludes the 'styles'
  ...otherProps,
});

我假设您已经基于上面的代码获得了此语法的支持,但是请注意,这是一个建议的语法,可通过babel stage
1预设
提供给您。如果在执行时遇到语法错误,则可以如下安装预设:

 npm install babel-preset-stage-1 --save-dev

然后将其添加到babel配置的“预设”部分。例如,在您的.babelrc文件中:

 "presets": [ "es2015", "react", "stage-1" ]

根据OP对问题的评论进行更新。

好的,所以您说您已经styles在此块之前声明了一个变量?我们也可以处理这种情况。您可以重命名已分解的参数以避免这种情况。

例如:

const styles = { foo: 'bar' };

const { styles: otherStyles, ...otherProps } = this.props;
const section = cloneElement(this.props.children, {
  className: otherStyles.section,
  // We spread our props, which excludes the 'styles'
  ...otherProps,
});


 类似资料:
  • 如果一个具有静态存储持续时间的对象的构造函数的完成或动态初始化在另一个对象的完成之前被排序,则第二个对象的析构函数的完成将在第一个对象的析构函数的启动之前被排序。[注:此定义允许并发销毁。-结束注] 第二个和第一个的完成析构函数可能在不同的线程中吗?

  • 对象使用完之后需要对其进行清除。对象的清除是指释放对象占用的内存。在创建对象时,用户必须使用 new 操作符为对象分配内存。不过, 在清除对象时,由系统自动进行内存回收,不需要用户额外处理。这也是 Java 语言的一大特色,某种程度上方便了程序员对内存的管理。 Java 语言的内存自动回收称为 垃圾回收(Garbage Collection)机制,简称 GC。垃圾回收机制是指 JVM 用于释放那些

  • 问题内容: 我对垃圾收集器在Java中的工作方式有一个大致的了解,但是我销毁对象的原因不是因为我关心释放内存,而是因为功能。我可以用一个例子更好地解释: 假设我正在制作涉及金钱的游戏。当某人从地面上捡起一个物体时,我想调用该物体的方法,该方法涉及为该人的钱包添加一个值。 之后发现,我不希望别人能够把它捡起来。换句话说,我不希望自己或任何其他程序能够不经意间拨打电话: 因此,在Bob拿起钱后,它的价

  • 问题内容: 我在接受以下采访时遇到了这个问题: 如何在Java中销毁对象? 答案应该是e? 如果e不在那里怎么办?然后 ?显然,c不是答案。a和b将为整个应用程序执行gc(问题需要一个对象)。我认为这是d,因为finalize()刚好在gc之前被调用(但是是否有必要在finalize gc之后被调用?)还是我错了?您必须在那里回答这个问题吗? 问题答案: 答案E是正确答案。如果E不存在,您将很快用

  • 我正在学习RXJava的基础知识。正如您所看到的,我有一个小方法,它只检查两个整数是否相等,并以单个的形式返回结果 我收到一条警告消息,显示: 我怎样才能以一种适当的方式摆脱这个?

  • 本文向大家介绍java教学笔记之对象的创建与销毁,包括了java教学笔记之对象的创建与销毁的使用技巧和注意事项,需要的朋友参考一下 本课程的目标是帮你更有效的使用Java。其中讨论了一些高级主题,包括对象的创建、并发、序列化、反射以及其他高级特性。本课程将为你的精通Java的旅程提供指导。 1. 引言 在TIOBE 编程语言排名中,Sun 公司于1995年开发的Java语言是世界上使用最广泛的编程