gpt4 book ai didi

reactjs - 从另一个 reducer 内访问 reducer 状态

转载 作者:行者123 更新时间:2023-12-03 13:16:45 33 4
gpt4 key购买 nike

我有一个 reducer ,可以在调度操作时重新调整适当的状态。现在我定期调用 API,因此结果会一次又一次地触发操作。所以我想要的是,如果 reducer 状态已经有数据,那么另一个 reducer 在发送调用时不会将状态显示为正在加载。仅在第一次接收数据时必须保持其加载状态。我希望我能够正确地解释它

这是我的代码片段

加载状态 reducer

const loading = (state = false, action) => {

switch (action.type) {
case 'GET_AUDIT_DATA': // here I want to return true only when there is no data available
return true
case 'GET_AUDIT_DATA_RECEIVED':
return false
case 'GET_AUDIT_DATA_ERROR':
return false
default:
return state
}
}

组合 reducer

const allReducers = combineReducers({
auditData: AuditData,
auditLoading: AuditLoading,
modifiedOrders: ModifiedOrders
});

export default allReducers;

Reducer 返回 super 代理触发的操作数据

const auditData = (state = [], action) => {
switch(action.type) {
case 'GET_AUDIT_DATA_RECEIVED':
console.log(action.data);
return action.data;
case 'GET_AUDIT_DATA_ERROR':
return action.err;
default :
return state;
}
}
export default auditData;

所以最初是 auditData不包含任何数据,仅在第一次成功调用后才返回数据。当同时调用这个时loading state reducer被调用,它应该在 GET_AUDIT_DATA 中返回 true仅当审计数据缩减器不包含任何数据时才执行操作。

还仅返回当前从 auditData 获取的数据正确的方法,否则我应该采取不同的做法。基本上我想要 overwrite current datanew one .

最佳答案

您可以调用getState()通过存储来获取 reducer 列表和 reducer 内的当前状态。

  1. store导入到auditLoading(使用store获取值。不要改变store)
  2. store.getState().auditLoading 将为您提供 auditLoading reducer 的状态。

这种方法类似于 redux-thunk 提供的回调。其中 (dispatch, getState) => {} 将返回到操作。

关于reactjs - 从另一个 reducer 内访问 reducer 状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40235631/

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