【发布时间】:2021-09-28 14:06:59
【问题描述】:
我正在处理我的项目,我注意到当打开严格模式时,它会将两个相同的元素推送到我的数组中。当严格模式关闭时,它只会将一个元素推入数组。有什么解释为什么会这样吗?
import {getRandomNumber} from './utils';
export function registerTicket() {
const newTicket = {
number: getRandomNumber(),
color: 'red',
}
this.setState((prevState) => {
prevState.tickets.push(newTicket);
return {
remainingTickets: --prevState.remainingTickets,
tickets: prevState.tickets,
}
})
}
这是我的状态。
this.state = {
winningNumber: getRandomNumber(),
remainingTickets: 5,
tickets: [],
finished: false
};
【问题讨论】:
-
您在寻找other answers on SO 还是来自official docs 的东西?长话短说,它通过双重调用某些生命周期方法和 React 钩子来帮助暴露无意的副作用。在您的情况下,您正在改变状态对象。
标签: javascript reactjs