2017-04-03 21 views
0

私はreduxとApiの呼び出しで作業用Webバージョンを取得し、Reactネイティブアプリに移植しています。しかし、私はAPI呼び出しを行うためにサンクをディスパッチしようとすると、ディスパッチを確認するために自分のサンクにコンソールログが表示されないように見えます。これは、私が何かが適切に接続されていないと思うが、私はそれが何かを見ていない。私は何が欠けていますか?react-reduxサンクのapiコールを呼び出さない

初期状態のストアを作成します。store.getState()がすべて正常に表示されます。

const initialState = { 
    config: fromJS({ 
    apiUrl: "http://localhost:3000/account-data", 
    }) 
} 
const store = createStore(
    reducers, 
    initialState, 
    compose(
    applyMiddleware(thunk), 
) 
) 

は私がmapDispatchToPropsを使用して、私は私が私のloadProducts機能を検査するとき、私は派遣を確認コンソールログが表示されない、小道具

しかし
export function mapDispatchToProps(dispatch) { 
    return { 
    loadProducts:() => dispatch(loadProducts()) 
    }; 
} 

の私のリスト内の関数を参照してください。何が起きてる? loadProductsがディスパッチしないのはなぜですか?ウェブ版では、ネットワークリクエストとログを確認できます。 React Nativeについてネットワークリクエストやこれらのコンソールログは表示されません。

export function loadProductsCall() { 
    console.log('in RN loadProductsCall') //don't see this 
    const opts = constructAxpOpts(); 
    return { 
    [CALL_API]: { 
     types: [ 
     LOAD_REQUEST, 
     LOAD_SUCCESS, 
     LOAD_FAILURE 
     ], 
     callAPI: (client, state) => 
     client.get(`${state.config.get('apiUrl')}/members`, opts), 
     shouldForceFetch:() => false, 
     isLoaded: state => !!(state.core.resources.products.get('productsOrder') && 
     state.core.resources.products.get('productsOrder').length), 
     getResourceFromState: (state) => state.core.resources.products.toJS(), 
     isLoading: state => !!state.core.resources.products.get('isLoading'), 
     getLoadingPromise: state => state.core.resources.products.get('loadingPromise'), 
     payload: {} 
    } 
    }; 
} 

export function loadProducts() { 
    console.log('in loadProducts') //don't see this 
    return (dispatch) => 
    console.log('in loadProducts dispatched 2') //don't see this either 
    dispatch(loadProductsCall()) 
     .then((response) => { 
     return response; 
     }); 
} 

答えて

0

このコードには、3つのアクションタイプを処理するカスタムAPIミドルウェアがありません。また、mapDispatchToPropsにはディスパッチをラッピングする関数があります。この関数をアンラップして約束を返すか、コードのどこかで呼び出す必要があります。

関連する問題