简体   繁体   English

添加新属性以反应 state

[英]Add new property to react state

I am trying to add a new property to the state "initialTags".我正在尝试向 state“initialTags”添加一个新属性。 However, I do not know how to do that.但是,我不知道该怎么做。 I have tried to loop through the object to set the new property, however it didnt work.我试图循环通过 object 来设置新属性,但是没有用。 Also, the setState it all in a same function, but since setState is async, I am unable to setState on the same state after my first setState statement.此外,setState 全部在同一个 function 中,但由于 setState 是异步的,在我的第一个 setState 语句之后,我无法在同一个 state 上设置状态。

Initializing the state:初始化 state:

this.setState({ initialTags: [...tempTarget] }, () => console.log("initTags == ", this.state.initialTags));

Array of Object after setState: setState 后的 Object 数组:

[
    {
        "name": "AQS",
        "projectId": "MTYzMDE1MzU3NjA3My10ZXN0MTA",
        "projectName": null,
        "isUserForAllProject": false
    },
    {
        "name": "ED",
        "projectId": null,
        "projectName": null,
        "isUserForAllProject": null
    },
    {
        "name": "PAID",
        "projectId": null,
        "projectName": null,
        "isUserForAllProject": null
    },
    {
        "name": "QS",
        "projectId": null,
        "projectName": null,
        "isUserForAllProject": null
    }
]

The New property that needs to be added in the Object: Object中需要添加的New属性:

[
    {
        "name": "AQS",
        "projectId": "MTYzMDE1MzU3NjA3My10ZXN0MTA",
        "projectName": null,
        "isUserForAllProject": false,
        "return": []

    },
    {
        "name": "ED",
        "projectId": null,
        "projectName": null,
        "isUserForAllProject": null,
        "return": []
    },
    {
        "name": "PAID",
        "projectId": null,
        "projectName": null,
        "isUserForAllProject": null,
        "return": []
    },
    {
        "name": "QS",
        "projectId": null,
        "projectName": null,
        "isUserForAllProject": null,
        "return": []
    }
]
this.setState((prev) => {
      return {
        ...prev,
        initialValues: prev.initialValues.map((item) => {
          return {
            ...item,
            returnValue: []
          };
        })
      };
    });

You shoudn't use return as it is a keyword.你不应该使用return因为它是一个关键字。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM