我可以删除反应中的道具吗?

时间:2016-05-21 01:57:23

标签: javascript reactjs

我只想知道是否可以安全地从组件中删除反应组件道具。

是否有像

这样的功能

this.destroyProps({someProp})

3 个答案:

答案 0 :(得分:7)

不,你不能。反应组件的道具是immutable,不应该被组件更改。

如果您需要在本地处理数据,可以使用state of the component,或者更好地创建道具数据的本地副本。

答案 1 :(得分:1)

为什么不只是将已删除的道具解构,然后再使用其余的道具?

const {someProp, ...rest} = this.props;
return (
    <ChildComponent {...rest} />
);

但是,实际上,这里的问题是,为什么要首先传入someProp

答案 2 :(得分:0)

如果将道具传递到子组件上,则可以创建一个新对象,从中删除属性,然后传递给子组件。

const childProps = { ...this.props };
delete childProps.someProp;
return (
  <ChildComponent {...childProps} />
)