首页 > 解决方案 > 如何防止子页面的状态变量之一改变其值?如何保留初始值作为父页面的道具?- 反应JS

问题描述

当我父母中名为“isChildOpen”的标志为真时,我的子页面打开。现在我想让我孩子的状态变量filtered2 不变。当我打开子页面时,过滤和过滤2应该从父页面获得相同的值,但是虽然过滤可以在子页面的任何操作期​​间改变,但过滤2应该每次都保留其打开子页面的初始值。它应该在打开父级时从父级获取其值,但不会由于子级中的任何操作而改变。

子代码

 class Child extends Component {
    constructor(props) {
     super(props);
      this.state = {
       data: this.props.data,
       filtered: this.props.filtered
       filtered2: this.props.filtered
       };
     }

我试过 Object.freeze 但没有帮助。

这是孩子从父页面打开的方式

         {this.state.isChildOpen &&
         <Child 
            data={this.state.data}
            filtered={this.state.filtered}
          />}

任何人都可以在这方面帮助我吗?在子进程中的任何操作期​​间,filtered 可以更改,但在子进程刚刚打开后,filtered2 应该保留初始值。

标签: javascriptreactjs

解决方案


我相信你可以使用this.props.filtered.slice()

这将复制该值


推荐阅读