我正在尝试从孙子代更改grandParent状态,我知道我应该将某种方法传递给孙子组件,尝试之后,结果会感到困惑。
如果我逐步通过方法,例如GrandParent --->父级--->子级,结果将是预期的。
问题来了:为什么会发生这种情况?
https://codesandbox.io/s/cranky-grass-45ifs
我希望一次单击添加的每个项目:
APPEND :
正如@Antonio所说,解决方案可能是:
现在,最重要的是:
控制台为什么会有不同的结果?
答案 0 :(得分:1)
使用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};
}));
};
这里是codepen。