我有一个与此类似的switch-case
声明。
switch (this.state.someState) {
case "string1":
this.setState({
someState: "string5"
});
break;
case "string2":
this.setState({
someState: "string6"
});
break;
case "string3":
this.setState({
someState: "string7"
});
break;
case "string4":
this.setState({
someState: "string8"
});
break;
default:
this.setState({
someState: "string1"
});
break;
}
问题是它根据先前的状态而不是当前状态设置状态。
我该如何解决这个问题?
答案 0 :(得分:0)
setState
是异步的,所以如果你真的想这样做,你应该尝试使用回调:
case "string1":
this.setState({ someState: "string5" }, () => {
break;
});
答案 1 :(得分:0)
switch-case
来呈现不同的数据。 React Native具有一项功能,可以在数据类似于以前的数据时阻止不必要的重新呈现。显然,这包括对原始数据阵列进行反转和排序。所以我返回了一个带有[].concat()
的新数据数组,并且它有效。