Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 状态对象将rootReducer转换为CombineReducer时出现问题_Javascript_Reactjs_Redux - Fatal编程技术网

Javascript 状态对象将rootReducer转换为CombineReducer时出现问题

Javascript 状态对象将rootReducer转换为CombineReducer时出现问题,javascript,reactjs,redux,Javascript,Reactjs,Redux,我有一个使用redux的应用程序,目前将reducer文件设置为rootReducer,但我需要扩展它,所以我想使用CombineReducer,但我无法让它工作。下面是我的rootReducer的代码,它在应用程序中运行良好 //根减速机 导出默认函数rootReducer(状态={ 已筛选:[], },行动){ 开关(动作类型){ 案例“搜索图像”: let filtered=action.payload 返回{…状态,图像:action.payload,筛选,isFetching:fal

我有一个使用redux的应用程序,目前将reducer文件设置为rootReducer,但我需要扩展它,所以我想使用CombineReducer,但我无法让它工作。下面是我的rootReducer的代码,它在应用程序中运行良好

//根减速机
导出默认函数rootReducer(状态={
已筛选:[],
},行动){
开关(动作类型){
案例“搜索图像”:
let filtered=action.payload
返回{…状态,图像:action.payload,筛选,isFetching:false}
违约:
返回状态
}

}
您能分享您收到的错误吗

查看您的代码,我看到一个bug(下面是更正的代码):

你的问题很不清楚。但我能理解的是你 想知道联合收割机减速器的工作原理吗

这就是我们使用联合收割机减速器的方式

reducer1.js

const somedefault = [];
    export default function (state = somedefault, action) {

      switch (action.type) {

        case "SEARCH_IMAGES":
          let filtered = action.payload
          return {
             ...state, images: action.payload, filtered, isFetching: false
          };
          default:
          return state
        }
    }
reducer2.js

const somedefault = {};
    export default function (state = somedefault, action) {

      switch (action.type) {
          default:
             return state
        }
    }
combineReducer.js

import { combineReducers } from 'redux';
import Red1 from './reducer1.js';
import Red2 from './reducer2.js';

export default combineReducers({
  red1: Red1,
  red2: Red2
})
所以当你看到你的redux状态时,它看起来就像

state
|___red1: []
|___red2: {}

您是否获得了所需的默认状态?是的,我刚刚在代码段的底部添加了错误消息。感谢您将“let filtered=this.state.action.payload”更改为“let filtered=action.payload”是否对您有效?是的,我将其更改为“let filtered=action.payload”,但仍然收到错误。您可以共享ImageContainer.js代码吗?我想看看你是如何连接到Redux商店的。我刚刚添加了ImageContainer.js代码。“const allImages”是我添加“filter.filter”修复的地方。
state
|___red1: []
|___red2: {}