You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Redux项目结合Redux-Thunk调用API后Header组件无法渲染求助

问题排查:Redux-Thunk对接API后Header组件未正常渲染

核心问题1:Reducer中字符数组被错误嵌套

在characterReducer的FETCH_CHARACTERS_SUCCESS分支里,你把API返回的数组(action.payload)直接追加到原characters数组中,导致characters变成了二维数组,最终map遍历无法正常渲染:

case FETCH_CHARACTERS_SUCCESS:
    return {
        ...state,
        loading: false,
        characters: [...state.characters, action.payload] // 错误:payload本身是数组,此处会形成数组嵌套
    };

API返回的results已经是字符对象组成的一维数组,正确处理方式应为直接替换原数组(若需分页加载则展开合并):

// 首次加载直接替换
characters: action.payload
// 分页场景下合并数组
characters: [...state.characters, ...action.payload]

核心问题2:Action函数名拼写错误(潜在隐患)

你的action创建函数actionFetchCharactersSucess存在拼写错误(应为actionFetchCharactersSuccess,缺失字母c),虽然当前type常量匹配暂时不影响功能,但后续维护极易引发问题,建议修正:

// 修正函数名拼写
export const actionFetchCharactersSuccess = (characters) => ({
    type: FETCH_CHARACTERS_SUCCESS,
    payload: characters,
});
// 同步修正fetchCharacters中的调用
dispatch(actionFetchCharactersSuccess(results));

修复后验证

修正上述问题后,characters会成为正常的一维数组,Header组件中的characters.map即可正常遍历并渲染每个字符的名称与状态。

内容的提问来源于stack exchange,提问作者Elias Ferreira

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 13:47:47