提前谢谢。我使用不变的助手来设置状态。但是,我在this.setState附近得到了隐晦的错误,它说:Use callback in setState when referencing the previous state是否有任何工作,因为我使用不变的助手,我需要使用prevState,可以共享任何校正的方法。
import update from 'immutability-helper';
moveSection = (dragIndex, hoverIndex) => {
const { list} = this.state;
const dragCard = list[dragIndex];
this.setState(
update(this.state, {
list: {
$splice: [
[dragIndex, 1],
[hoverIndex, 0, dragCard],
],
},
}),
); };发布于 2019-12-26 13:35:35
试试这个:
this.setState(
(state) => {
return update(state, {
list: {
$splice: [
[dragIndex, 1],
[hoverIndex, 0, dragCard],
],
},
})
}
);发布于 2019-12-26 13:35:58
它告诉你要这么做
this.setState(prevState =>
update(prevState, {
list: {
$splice: [
[dragIndex, 1],
[hoverIndex, 0, dragCard],
],
},
}),
);如果快速连续地多次更改状态,则react可以对这些更改进行批次处理,并将它们全部应用于一个呈现中。因此,如果调用update并传入this.state,则无法保证this.state具有最近的状态,因此最终可能会抛出其他状态更新所做的更改。
如果您使用的是setState的函数版本,那么您肯定会得到最新的状态,并且消除了这个可能的错误。
https://stackoverflow.com/questions/59489194
复制相似问题