我几天用减速器挣扎,即使在动作后状态似乎正确,React Component也不会更新......
if (getPorts.test(action)) {
var service = new SerialService();
var dataResult = new Array<any>();
service.listDevices(function (err: any, data: Array<any>) {
data.forEach((item) => {
dataResult.push({ ...item })
});
});
return {
...state,
ports: dataResult
};
}
我尝试了很多方法,有或没有传播运算符(使用object.assign())
根据我的理解,由于列出设备的回调,可能会遗漏一些东西,猜测我不能很好地管理我应该如何更新UI。
任何想法或建议?
我假设上面的代码片段是reducer的一部分。 Reducer应始终是同步的,您不能期望回调中的异步更新能够正确地更新渲染周期中的连接组件。尝试寻找redux中间件以支持异步操作。