Getting TypeError: Cannot perform 'get' on a proxy that has been revoked Redux toolkit
Getting TypeError: Cannot perform 'get' on a proxy that has been revoked Redux toolkit
我正在尝试从我的本地 sqlite 数据库中检索数据并使用某些值填充 redux 状态,我的 reducer 如下
getItems: (state) => {
try {
useKnex
.select()
.table("itemTable")
.then(async (data: any) => {
state.push({
itemId: parseFloat(data.itemId),
itemCode: data.itemCode,
itemDescription: data.itemDescription,
itemSellingPrice: parseFloat(data.itemSellingPrice),
itemType: data.itemType,
createdAt: data.createdAt,
updatedAt: data.updatedAt,
});
console.log(data);
})
.catch((err) => {
console.error(`Error: ${err}`);
});
} catch (err) {
console.log(err);
}
}
在我的内容页面上,我使用 useEffected 获取数据以进行测试:
useEffect(() => {
dispatch(queryItemsAction());
});
但是当我 运行 我得到的一切:
Error: TypeError: Cannot perform 'get' on a proxy that has been revoked
一般来说,在 redux 中,你 不能 在减速器中有任何副作用 - 这里发生的是你正在触发一个 side-effect 运行并将尝试稍后写入 reducer 之外的 store(这打破了 redux 的另一个规则)。
如果您有这样的 side-effect,您需要在中间件中处理它。通常,thunk 用于此 - 请阅读 Redux Essentials, Part 5: Async Logic and Data Fetching
我正在尝试从我的本地 sqlite 数据库中检索数据并使用某些值填充 redux 状态,我的 reducer 如下
getItems: (state) => {
try {
useKnex
.select()
.table("itemTable")
.then(async (data: any) => {
state.push({
itemId: parseFloat(data.itemId),
itemCode: data.itemCode,
itemDescription: data.itemDescription,
itemSellingPrice: parseFloat(data.itemSellingPrice),
itemType: data.itemType,
createdAt: data.createdAt,
updatedAt: data.updatedAt,
});
console.log(data);
})
.catch((err) => {
console.error(`Error: ${err}`);
});
} catch (err) {
console.log(err);
}
}
在我的内容页面上,我使用 useEffected 获取数据以进行测试:
useEffect(() => {
dispatch(queryItemsAction());
});
但是当我 运行 我得到的一切:
Error: TypeError: Cannot perform 'get' on a proxy that has been revoked
一般来说,在 redux 中,你 不能 在减速器中有任何副作用 - 这里发生的是你正在触发一个 side-effect 运行并将尝试稍后写入 reducer 之外的 store(这打破了 redux 的另一个规则)。
如果您有这样的 side-effect,您需要在中间件中处理它。通常,thunk 用于此 - 请阅读 Redux Essentials, Part 5: Async Logic and Data Fetching