Javascript 每次操作后都会清除Redux存储
我是个新手,不知道该怎么做 不知何故,每次操作后,我的整个存储都会被完全清除,只执行当前操作。我将用行动日志的截图来描述情况 这是我的行动Javascript 每次操作后都会清除Redux存储,javascript,react-native,redux,react-redux,Javascript,React Native,Redux,React Redux,我是个新手,不知道该怎么做 不知何故,每次操作后,我的整个存储都会被完全清除,只执行当前操作。我将用行动日志的截图来描述情况 这是我的行动 function writeProduct(id) { return { type: 'WRITE_PRODUCT', id } } 这是我的减速机 case 'WRITE_PRODUCT': console.log("WRITE PRODUCT ACTION: ", action); con
function writeProduct(id) {
return {
type: 'WRITE_PRODUCT',
id
}
}
这是我的减速机
case 'WRITE_PRODUCT':
console.log("WRITE PRODUCT ACTION: ", action);
console.log("state: ",state);
return {
productID: action.id
};
这是writeProduct
操作的分派期间的控制台日志
我做错了什么?为什么每次发送后都会覆盖上一个存储
请帮帮我,您正在覆盖减速器中以前的状态。
您应该包括所有以前的状态,并且只更改减速器应该更改的内容
例如。
在减速器中:
return {
...state,
productID: action.id
};
请注意…state
部分,其中包括结果中以前的所有状态
此外,您的action对象不符合FSA,您可能也应该了解这一点。您正在覆盖reducer中以前的状态。
您应该包括所有以前的状态,并且只更改减速器应该更改的内容
例如。
在减速器中:
return {
...state,
productID: action.id
};
请注意…state
部分,其中包括结果中以前的所有状态
另外,您的action对象不符合FSA,可能也应该了解这一点。嗯,我不知道为什么整个商店都被摧毁了,但是
case 'WRITE_PRODUCT':
console.log("WRITE PRODUCT ACTION: ", action);
console.log("state: ",state);
return {
productID: action.id
};
应该是
case 'WRITE_PRODUCT':
console.log("WRITE PRODUCT ACTION: ", action);
console.log("state: ",state);
return {
...state,
productID: action.id
};
```
状态
被传递给你的reducer函数hmmm我不知道为什么整个商店都被清除了,但是
case 'WRITE_PRODUCT':
console.log("WRITE PRODUCT ACTION: ", action);
console.log("state: ",state);
return {
productID: action.id
};
应该是
case 'WRITE_PRODUCT':
console.log("WRITE PRODUCT ACTION: ", action);
console.log("state: ",state);
return {
...state,
productID: action.id
};
```
state
被传递给你的reducer函数你应该返回你的状态而不是productive如果你没有使用combinereducer
,你需要处理合并属性。如果你只有一个ruducer,那么覆盖状态将覆盖存储。有一个优秀的视频系列解释redux是如何工作的。是解决此特定问题的起点。您应该返回您的状态,而不是产品。如果您没有使用合并还原程序
,则需要处理合并属性。如果您只有一个还原程序,则覆盖状态将覆盖存储。有一个优秀的视频系列介绍redux的工作原理。这是你应该开始讨论这个问题的地方。谢谢,伙计。我不知道行动后整个商店都被清理了。它解决了我的问题。我当然需要更多地了解Redux。现在,我将更详细地查看您建议的链接和其他文档。祝你一天愉快。谢谢,伙计。我不知道行动后整个商店都被清理了。它解决了我的问题。我当然需要更多地了解Redux。现在,我将更详细地查看您建议的链接和其他文档。祝您今天过得愉快。