【问题标题】:React strict mode not updating model反应严格模式不更新模型
【发布时间】:2020-11-07 04:14:49
【问题描述】:

我在这里有一个应用程序以严格模式和非严格模式呈现。在非严格模式下它工作正常,模型正在 onChange 中更新,但是在严格模式下这不起作用。有什么想法,为什么以及如何解决这个问题?

https://stackblitz.com/edit/react-qvubmx

谢谢。

【问题讨论】:

  • 严格模式用于调试。阅读更多关于它的信息here
  • 谢谢,是的,我知道这一点,而且我可以通过删除严格模式来让它工作,但是这段代码在严格模式下不起作用的实际问题是什么?

标签: reactjs


【解决方案1】:

好的,解决了。

this.setState(prevState => {
     const updatedTodos = prevState.todos.map((todo) => {
     if (todo.id === t.id) {
       todo.completed = !todo.completed;
     }
     return todo;
});

todo.completed = !todo.completed 实际上是直接更新 prevState 而 strict-mode 不喜欢这样。

这是正确的做法。

return {
 ...todo,
 completed: !todo.completed
}

https://stackblitz.com/edit/react-3xywfc

【讨论】:

    猜你喜欢
    • 2021-09-28
    • 2023-01-31
    • 2014-07-09
    • 1970-01-01
    • 1970-01-01
    • 2011-03-09
    • 2015-06-25
    相关资源
    最近更新 更多