2017-08-18 2 views
0

イベントが開催されるデータ構造を持っています。データを取得する別々のアクションがありますが、コンポーネントを適切にレンダリングするには両方とも必要になる場合もあります。Reduxは複数のディスパッチを待ちます

私はgetEventsアクションも会場データを取得する必要がありますが、コンテナまたはコンポーネントレベルでそれらをグループ化する必要があるかどうかはわかりませんし、両方を完了するのを待つ最善の方法です。

私はちょうどReactとReduxを使い始めているので、どんな助けでも大歓迎です。ありがとう!

コンテナ:

import { connect } from 'react-redux'; 

import { getEvents } from '../actions/getEvents'; 
import { getVenues } from '../actions/getVenues'; 
import Events from '../components/Events'; 

function mapStateToProps(state) { 
    return { 
    events: state.events, 
    venues: state.venues 
    }; 
} 

function mapDispatchToProps(dispatch) { 
    return { 
    onGetEvents:() => dispatch(getEvents()), 
    onGetVenues:() => dispatch(getVenues()), 
    }; 
} 

const EventsContainer = connect(mapStateToProps, mapDispatchToProps)(Events); 

export default EventsContainer; 

コンポーネント:私は最終的にこれを取り扱う

import React from 'react'; 

import { Text, View } from 'react-native'; 

export default class Events extends React.Component { 
    componentWillMount() { 
    this.props.onGetEvents(); 
    this.props.onGetVenues(); 
    } 

    render() { 
    const events = []; 

    for (let key in this.props.events.data) { 
     events.push(this.props.events.data[key]); 
    } 

    return (
     <View> 
     {events.map(event => { return <Text>{ event.name }, [get venue name]</Text>; })} 
     </View> 
    ); 
    } 
} 
+0

あなたはこれを 'redux-thunk'とタグ付けしました。おそらくそれを使用していますか?あなたの行動を投稿できますか?サンクは、このロジックを置くために良い場所になります – ken4z

+0

あなたは私たちのレポをテストするためにあなたのレノを共有することはできますか? –

+0

@ ken4z私は 'getVenues'データベース呼び出しを' getEvents'で複製したくありません。 – iamdarrenhall

答えて

0

方法は、アクションにloadingプロパティを追加することでしたが、その後、コンポーネントをレンダリングする前にいることを待っています。

関連する問題