javascript - 如何防止子页面的状态变量之一改变其值?如何保留初始值作为父页面的道具?- 反应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 应该保留初始值。
解决方案
我相信你可以使用this.props.filtered.slice()
这将复制该值
推荐阅读
- ruby-on-rails - 是否可以通过 ActiveRecord 迁移从命令行调用 change_table?
- python - Python:计算年份的逻辑错误(闰)
- arrays - 在数组中渲染图像
- kubernetes - 污染 Kubernetes 实时集群中的节点
- node.js - 如何在我的去中心化应用程序中安装 web3 工作版本
- amazon-web-services - 我可以向 Amazon Cognito 中的用户发送电子邮件吗?
- bash - 在目录中具有特定文件夹名称的所有文件上查找并执行命令
- python - Python:计算数据框中列的减法
- python-3.x - 如何在 BeautifulSoup 创建的列表中提取特定文本
- c++ - 将数字转换为单词