2017-09-27 11 views
0

私はアクションで2つのAPI呼び出しを行いました。減速のためのコードがthis-reduxの関数エラーではありません

import {combineReducers} from 'redux'; 
import {GET_API_DATA, GET_QUERY_LIST} from '../actions/index.js'; 

function getApplicationData(state = [],action){ 
    switch(action.type){ 
     case GET_API_DATA: 
      return[ 
       ...state, 
       { 
        resultMeta:action.response, 
       } 
      ] 

      default: 
       return state 

     case GET_QUERY_LIST: 
      return[ 
       ...state, 
       { 
        resultMeta:action.response 
       } 
      ] 
    } 
} 

const data = combineReducers({ 
    getApplicationData 
}) 

export default data; 

と行動に、私はJSファイルにloaddataの()関数を呼び出していますthis-

import * as axios from 'axios'; 
import {Constants} from '../constants.js'; 

export const GET_API_DATA = 'GET_API_DATA'; 

export const getApi =()=>{ 
    // const res=await axios.get('Constants.URLConst+"/UserProfile"',{headers:{Constants.headers}}); 
    // dispatch({type:GET_API_DATA,payload:res.data}); 
    return(d)=>{ 
     axios({ 
      method:'GET', 
      url:Constants.URLConst+"/UserProfile", 
      headers:Constants.headers 
     }).then((response)=>{ 
      return d({ 
       type:GET_API_DATA, 
       response 
      }); 
     }).catch((e)=>{ 
      console.log("e",e); 
     }) 
    } 

} 

export const GET_QUERY_LIST='GET_QUERY_LIST'; 

export const loadData=()=>{ 
    return(d)=>{ 
     axios({ 
      method:'GET', 
      url:Constants.URLConst+"/Query?pageNum=1&totalperPage=15&userid=0", 
      headers:Constants.headers 
     }).then((response)=>{ 
      type:GET_QUERY_LIST, 
      response 
     }).catch((e)=>{ 
      console.log(e); 
     }) 
    } 
} 

のようなAPIへの呼び出しを行っていますのようなものです私はこの2つの関数を呼び出しています二つの異なるJSファイルを、持っているthis-

import React,{Component} from 'react'; 
import {loadData} from './actions'; 
import {connect} from 'react-redux'; 

export class Home extends Component{ 

    componentDidMount(){ 
     this.props.loadData(); 
    } 

    render(){ 
     return null; 
    } 

} 

const mapStateToProps = (state) => { 
    return{ 
     resultCame: state.getApplicationData 
    } 
} 

export default connect(mapStateToProps, { 
    loadData: loadData 
})(Home); 

のようなもの。最初のものは正常に動作しますが、2番目のものはエラーが発生します。

loadData()は関数ではありません。

どのように私はreduxで複数の関数を呼び出すことができ、何が問題ですか?

答えて

1

あなたの2番目のaxiosであなたはアクションをディスパッチする必要があります。

export const loadData =() => { 

    return (dispatch) => { 

     axios({ 
      method:'GET', 
      url:Constants.URLConst+"/Query?pageNum=1&totalperPage=15&userid=0", 
      headers:Constants.headers 
     }).then((response)=>{ 
      // remember to dispatch the action once a response is received 
      dispatch(
      type:GET_QUERY_LIST, 
      response 
      ); 
     }).catch((e)=>{ 
      console.log(e); 
     }); 

    } 
} 
+0

私はそれをした以下の更新されたコードを参照してください!しかし、私はまだ同じエラー – Aayushi

+0

を取得するにははい、それは正しく – Aayushi

+0

igetがエラーではなく、機能を()に動作しない – Aayushi

関連する問題