推送到反应状态数组

use*_*804 3 javascript arrays reactjs react-native

我怎样才能更好地编写它,我想用setState而不是this.state.floors.push来做,因为我知道这是一种不好的做法,但我无法弄清楚。我正在使用本机反应。

FloorAPI.getFloorsByBuildingID(this.state.buildingID).then((response) => response.d.data.map((value) => {
  console.log(value.floorName)
  this.state.floors.push({value: value.floorName})
}))
Run Code Online (Sandbox Code Playgroud)

imj*_*red 12

// Create a new array based on current state:
let floors = [...this.state.floors];

// Add item to it
floors.push({ value: floorName });

// Set state
this.setState({ floors });
Run Code Online (Sandbox Code Playgroud)


小智 5

在钩子形式中你可以使用

setState((prevVals) => [...prevVals,newVals])
Run Code Online (Sandbox Code Playgroud)