反应redux调度功能未触发

时间:2019-02-23 07:49:00

标签: reactjs redux reducers

  

我在下面附加了我所有需要的文件以供参考   当我尝试调用反应时,不会触发redux调度功能。是应对redux的新手

action.js文件

import { ITS_USER } from './types';
import {store} from './index'

export  function addPerson(person) {  
    console.log("chek",person);
    console.log("state",store.getState());

    return dispatch => {
      dispatch(adduser(person));

    }
  }

  export  function adduser(person){  
    return {
      type: ITS_USER,
      payload: person
    };
  }

Reducer.js

 import { ITS_USER } from './types';
export default function(state=[], action) {
    console.log("dxasdads",action.type)
    switch (action.type) {


        case ITS_USER:
          return action.payload;

          default:
          return state;

      }    
}

触发函数调用

   **var person="praveen"
          addPerson(person)**

1 个答案:

答案 0 :(得分:0)

您必须将组件与connect库提供的react-redux HOC连接,然后可以通过从作为连接函数的第一个参数传递的mapStateToProps调度它来触发调度函数。像这样:

import YOUR_COMPONENT from './PATH_TO_YOUR_COMPONENT'

const mapDispatchToProps = dispatch => ({
  addPerson: (person) => dispatch(addPerson(person)),
});

export default connect(null, mapDispatchToProps)(YOUR_COMPONENT);

然后在组件内部,您将获得addPerson作为组件props的功能。您可以直接通过this.props.addPerson(person)进行调用。