首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何对有push方法的数组进行setState?

如何对有push方法的数组进行setState?
EN

Stack Overflow用户
提问于 2019-05-31 03:18:58
回答 1查看 15关注 0票数 0

我的主要目标是用一个对象数组来设置一个状态,但我不能这样做,因为这个数组会随着推送到它的元素而发生变化。我明白这个问题,但我不知道如何解决它

这是代码,我想用最终的参与者数组来设置状态。有什么想法吗?

代码语言:javascript
复制
    const moviesToMap = this.state.movies;
    moviesToMap.map(movie => {
      return this.state.title === movie.title
        ? movie.characters.map(person => {
            const actorUrl = person;
            const actorId = parseInt(actorUrl.slice(31, -1));
            let peopleStateCopy = this.state.people;
            peopleStateCopy.map(persona => {
              const slugState = persona.url;
              const slugId = parseInt(slugState.slice(31, -1));
              if (slugId === actorId) {
                actors.push(persona);
                return persona.name;
              }
            });
          })
EN

回答 1

Stack Overflow用户

发布于 2019-05-31 03:24:52

你有很多事情要做--也许你可以重构它?

你的actor数组是在哪里初始化的?您的setState调用在哪里?

在处理处于状态的数组时,您可能希望创建数组的副本-在副本上执行突变-然后在完成时将状态设置为新的数组。

例如:

代码语言:javascript
复制
const moviesCopy = [...this.state.movies];
this.setState({ movies: moviesCopy });

希望这篇文章能帮助你走上正轨。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56384399

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档