gpt4 book ai didi

javascript - 在 redux 中调试 reducer 时遇到困难

转载 作者:行者123 更新时间:2023-12-03 00:01:40 27 4
gpt4 key购买 nike

我在工作的代码库中遇到了这些 reducer 。

const ACTION_HANDLERS = {
[LOGIN_REQUEST]: (state, action) => ({
...state,
isAuthenticating: true
}),
[LOGIN_SUCCESS]: (state, action) => ({
...state,
isAuthenticating: false,
isAuthenticated: true,
userId: action.userId,
authToken: action.auth,
authTTL: action.ttl,
authCreatedAt: action.created,
isNewUser: action.isNewUserFlag
}),
};

export default function authReducer(state = initialAuthState, action) {
const handler = ACTION_HANDLERS[action.type];
if(handler!==undefined){
console.log('login handler',handler);
// debugger;
}

return handler ? handler(state, action) : state;
}

我关心的是如何调试这种预先编写的 reducer 方法。我在 ACTION_HANDLERS 中的每个 [] 之前引入了控制台日志,但它们在语法上是错误的。我以前写过reducers,它们是这样的。

export default function FundsReducer(state=INITIAL_STATE,action={}){

switch(action.type){

case GET_ALL_FUNDS_FAILED:{
return{
...state,
funds:{
...state.funds,
failed:true,
pending:false,

}
};
}
case GET_ALL_FUNDS_PENDING:
{
let {options}=action.payload;

return{
...state,
funds:{
...state.funds,
data:[],
failed:null,
pending:true,
}
};
}
case GET_ALL_FUNDS:
{
let data;
data=action.payload.response.data;
return{
...state,
funds:{
...state.funds,
data,
pending:false,
}
}
}

我在调试这些 reducer 和引入控制台日志时遇到困难。

最佳答案

您可以使用 @remix23 提到的 redux 中间件,或者只更改您的操作,如下所示,以便您能够记录状态或操作。

[LOGIN_REQUEST]: (state, action) => {
console.log(action);
return {
...state,
isAuthenticating: true
}
}

希望这对您有帮助。

关于javascript - 在 redux 中调试 reducer 时遇到困难,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55142059/

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