首页 > 解决方案 > 如何在 Reactjs 中的状态对象内将值添加到数组中

问题描述

我有一个初始状态:

this.state = {
         transition:{
         completedStages:[]
         }
}

我想要实现的是,在函数调用中,我可以更新我的状态completedStages,这样每次更新状态时,值都会预先添加到数组中。像:

this.state = {
         transition:{
         completedStages:[SR, RR, BR]
         }
}

为此,我尝试的是:

let completedStages = [...this.state.transition.completedStages];
    completedStages.unshift('SR');
this.setState({
             transition:{
             completedStages:[completedStages]
             }
})

这弄乱了我的输出,并把每个添加的数组值都成对地作为键。我如何理解这种情况?

标签: arraysreactjssetstate

解决方案


你可以试试:

this.setState((state) => {
   return {
     transition: {
       ...state.transition,
       completedStages: ['SR', ...state.transition.completedStages]
     }
   }
})

推荐阅读