当前位置: 首页 > 知识库问答 >
问题:

在React中,如何按值复制状态属性?

柴琨
2023-03-14

我正在构建React 16.13应用程序。我想从我的状态复制一个属性,以便对其进行操作并保持基础状态不变。我以为这就是解决问题的方法。。。

  async handleFormSubmit(e) {
    e.preventDefault();
    const NC = [...this.state.newCoop]
    delete NC.addresses[0].country;

    try {
      const response = await fetch(FormContainer.REACT_APP_PROXY + "/coops/", {
        method: "POST",
        body: JSON.stringify(this.state.newCoop),
        headers: {
          Accept: "application/json",
          "Content-Type": "application/json",
        },
      });

但是这条线

const NC = [...this.state.newCoop]

给出错误

Unhandled Rejection (TypeError): this.state.newCoop is not iterable

按值复制状态变量的正确方法是什么?

共有1个答案

幸弘光
2023-03-14

我认为这只是因为你把一个物体分散成一个阵列;只要做:

const NC = {...this.state.newCoop}

编辑:

关于深度复制问题,您可以查看以下答案:https://stackoverflow.com/a/38417085

顺便说一下,这与react无关:)

 类似资料:
  • 问题内容: 我试图通过使用这样的嵌套属性来组织我的状态: 但是像这样更新状态 不起作用。如何正确完成? 问题答案: 为了创建嵌套对象,您可以按照以下方法进行操作,因为我认为setState无法处理嵌套更新。 这个想法是创建一个虚拟对象,对其执行操作,然后用更新的对象替换组件的状态 现在,散布运算符仅创建对象的一级嵌套副本。如果您的状态是高度嵌套的,例如: 您可以在每个级别使用传播运算符来设置状态,

  • 我传递的名称和值处理函数从子组件。 现在我想将状态设置为与提供的名称匹配的值。但是我不知道如何设置它。 我尝试了这种方式(但它给出了错误-'this.set状态不是一个函数'): 子组件的代码为: 设置它的正确语法是什么?

  • 我添加了一个简单的表单,有一个输入和一个保存按钮。保存函数被调用,并按预期工作。 但是我现在想在保存按钮上添加一个布尔值来禁用逻辑。所以在我当前的页面中,我有一个叫做的状态,如果这个状态是空的,我想禁用这个按钮。 我做了如下尝试,将传递到按钮的disabled属性中,但它不会禁用save按钮。与此示例类似: 我还在_onBlur方法中记录了该值,我可以看到电子邮件状态正在填充。 问题: 如何将组件

  • 我有一个覆盖,它是从另一个React组件启动的,该组件有一个按钮,也会改变自己。更改发生在用户单击按钮时,然后按钮更改它的classname。它还向children组件发送一个prop值,即覆盖。覆盖将根据属性以及单击该属性添加一个类。一切都很顺利,但现在我得做另一件事。当用户点击覆盖时,它必须关闭。在此更改之前,一切都是为我前面提到的按钮工作的。

  • 问题内容: 我的结构如下所示: 组件3应该根据组件5的状态显示一些数据。由于道具是不可变的,我不能简单地将其状态保存在组件1中并转发它,对吗?是的,我已经阅读了有关redux的内容,但不想使用它。我希望有可能通过反应来解决。我错了吗? 问题答案: 对于孩子与父母的通信,您应该传递一个将状态从父母设置为孩子的函数,如下所示 这样,孩子可以通过调用通过props传递的函数来更新父母的状态。 但是您将不

  • 本文向大家介绍在MongoDB中如何复制属性?,包括了在MongoDB中如何复制属性?的使用技巧和注意事项,需要的朋友参考一下 要将一个属性的值复制到另一个属性,请使用$set和update()。让我们创建一个包含文档的集合 在find方法的帮助下显示集合中的所有文档- 这将产生以下输出- 以下是在MongoDB中复制属性的查询- 在find方法的帮助下显示集合中的所有文档- 这将产生以下输出-