如何在 Reactjs 中的状态对象内将值添加到数组中

How to prepend a value to an array inside the object of state in 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]
             }
})

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

就这样加上吧。您可以使用setState的函数方式:

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

你可以试试:

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