我的状态正在改变而没有采取任何措施?

时间:2020-02-16 13:20:08

标签: reactjs redux react-redux state

今天我要进行一项测试,但有一些事情使我受阻,我不知道为什么我的状态完全改变了,我只有两个减速器,我不知道发生了什么。

这是我的第一个减速器:

import update from "immutability-helper";

export default function parametersReducer(
  state = { pages: 10, interval: 20, pageActive: 0 },
  action
) {
  switch (action.type) {
    case "PARAMETERS_CHANGE_PAGES":
      alert("Enrigistré");
      return update(state, { pages: { $set: action.payload } });
    case "PARAMETERS_CHANGE_INTERVAL":
      alert("Enrigistré");
      return update(state, { interval: { $set: action.payload } });
    case "PARAMETERS_CHANGE_ACTIVE_PAGE":
      return update(state, { pageActive: { $set: action.payload } });
    default:
      console.log(state);
      return state;
  }
}

他是第二个:

import update from "immutability-helper";
import Axios from "axios";

export default function getTasksReducer(state = [], action) {
  switch (action.type) {
    case "GET_TASKS":
      console.log(action.paylaod);
      return "ok";
    case "GET_TASKS8first":
      console.log(action.paylaod);
      return "ok";

    default:
      return state;
  }
}

我仍然没有使用第二个,所以只有默认设置可以使用,这就是我登录组件的位置:

 componentDidMount() {
   console.log(this.props);
   /*this.props.manageTasks("GET_TASKS_FIRST", {
    page: this.props.paramaters.pageActive,
    size: this.props.parameters.pages
   });*/
}

在这里我该如何获取组件中的数据:

function mapStateToProps(state) {
  console.log(state);
  return { parameters: state.paramaters };
}

function mapDispatchToProps(dispatch) {
  return bindActionCreators({ manageTasks: manageTasks }, dispatch);
}

export default connect(mapStateToProps, mapDispatchToProps)(Datatable);

这是我的CombineReducers:

import { combineReducers } from "redux";
import reducerGlobReducer from "../reducerGlob";
import parametersReducer from "../Components/Parameters/Redux/parametersReducer";
import getTasksReducer from "../Components/Data/Datatable/redux/reducers/getTasksReducer";

const rootReducer = combineReducers({
  parameters: parametersReducer,
  tasks: getTasksReducer
});

export default rootReducer;

我等待看到的是参数reducer中的默认数据,相反,我未定义gettig,首先获取了它们,但是状态从第1行更改为第2行:

Object : {parameters: {pages: 10, interval: 20, pageActive: 0}, tasks: []}
Object : {parameters: undefined, manageTasks: ƒ () }

我不知道为什么任务不再存在,为什么,任何帮助将不胜感激。

如果您要我在代码中添加一些内容,请询问,我将提供它。

0 个答案:

没有答案