首页 > 解决方案 > 在 React 中从 ...this.props 中删除 prop

问题描述

我正在寻找的是一种在传递...this.props给另一个 React 组件之前删除道具的快速方法。目前我有一个高阶组件,它执行一些逻辑,然后将其所有道具传递给另一个组件,但下一个组件不需要其中一个道具。是否可以在仍在使用时移除该道具,...this.props或者我必须单独发送每个道具?

标签: javascriptreactjs

解决方案


您应该能够使用带有解构的 rest 运算符来获得所需的结果,如下所示:

const props = {
  a: 1,
  b: 2,
  c: 3
}

// We want newProps without b

const { b, ...newProps } = props;

console.log(newProps);

或者,您可以复制对象并从新对象中删除不需要的道具。

const props = {
  a: 1,
  b: 2,
  c: 3
}

const newProps = { ...props };
delete newProps.b;

console.log(newProps);

此时,您可以将您的传播newProps到返回的组件中:

<MyComponent {...newProps} />

推荐阅读