gpt4 book ai didi

javascript - 在突变中我的状态正在发生变化

转载 作者:行者123 更新时间:2023-11-28 17:10:00 26 4
gpt4 key购买 nike

我遇到了一个非常奇怪的问题,即突变内的状态变化(!)。在我的突变中,我在前两行记录以下内容:

console.log('mutation state:', state)
console.log('mutation state.game.gameTree[2]:', state.game.gameTree[2])

预期: state.game.gameTree 相同

实际:他们不是!正如您在屏幕截图中看到的 state.game.gameTree[2].activeActionId 不一样。

console log

这个值怎么可能从第 1 行改变到第 2 行?我希望有人能帮忙:)

最佳答案

Chrome 会在您在控制台中查看对象时显示对象的值,而不是在记录对象时显示该值。我会尝试这样做:

console.log('mutation state:', JSON.parse(JSON.stringify(state)))
console.log('mutation state.game.gameTree[2]:', JSON.parse(JSON.stringify(state.game.gameTree[2])))

如果您仍然遇到同样的问题,那么就说明发生了一些奇怪的事情。

例如,如果您有:

function example() {
var a = { b: { c: 1 }};
return function() {
a.b.c++;
return a;
}
}

var wtf = example()

console.log(wtf())
console.log(wtf())
console.log(wtf())

您将在此处看到它按预期递增。如果你在 Chrome 中运行它,你会看到:

{b: {…}}
{b: {…}}
{b: {…}}

当您展开它时,它们都会显示相同的值。

关于javascript - 在突变中我的状态正在发生变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54712931/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com