首页 > 解决方案 > 由孙子的 Hooks 创建的更改祖父母状态的结果令人困惑?

问题描述

我正在尝试从孙子更改 grandParent 状态,我知道我应该将一些方法传递给孙子组件,在我尝试之后,结果很混乱。

如果我像 GrandParent ---> Parent ---> Child 那样一步一步地通过方法,结果与预期的一样。

那么问题来了:为什么会发生这种情况?

https://codesandbox.io/s/craky-grass-45ifs

我希望单击添加的每个项目:

附加

正如@Antonio 所说,解决方案可能是:

而现在,最重要的是:

为什么控制台有不同的结果?

标签: javascriptreactjs

解决方案


使用 usState 钩子更新 Array 状态的 Object 元素时出错。

const toggleStarred = text => {
  console.log("toggle: ", todos);
  setTodos((prevTodos) => prevTodos.map((todo) => {
    if (todo.text === text) return {...todo, isStarred: !todo.isStarred}
    return {...todo};
  }));
};

这是代码笔


推荐阅读