AccountSettlementContainer.js 1.99 KB

'use strict';

import React, { Component } from 'react';
import Immutable, {List, Record} from 'immutable';

import AccountSettlement from '../components/AccountSettlement'

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

import {bindActionCreators} from 'redux';
import {connect} from 'react-redux';

import {Map} from 'immutable';

import * as accountSettlementActions from '../reducers/accountSettlement/accountSettlementActions';

const actions = [
    accountSettlementActions,
];

function mapStateToProps(state) {
    return {
        ...state
    }
};

function mapDispatchToProps(dispatch) {

    const creators = Map()
            .merge(...actions)
            .filter(value => typeof value === 'function')
            .toObject();

    return {
        actions: bindActionCreators(creators, dispatch),
        dispatch
    };
}

export default class AccountSettlementContainer extends Component {

	constructor(props) {
		super(props);
		this.fetchNextPage = this.fetchNextPage.bind(this);
	}

	componentDidMount() {
        fetchNextPage();
	}

	fetchNextPage(){
        let params = {
            page: this.props.actStmt.currentPage+1,
            size: 20,
            brandId: this.props.home.get('brandId'),
        }
        this.props.actions.nextPageOfDataRequest(params);
	}
	render() {
        let dataBlob = {
			'SECTION_HEADER':[{title:'累计结算金额(元)',content:`${this.props.actStmt.sum}`}],
			'SECTION_SEPORATOR':[{}],
			'SECTION_TITLE':[{}],
			'SECTION_CONTENT':this.props.actStmt.jsonData,
		};
        let mapBlob = Immutable.fromJS(dataBlob);
        let end = this.props.actStmt.currentPage>=this.props.actStmt.pageCount;

		return (
            <AccountSettlement
                dataBlob={mapBlob}
                fetchNextPage={this.fetchNextPage}
                isFetching={this.props.actStmt.isFetching}
                reachEnd={end}
            />

		);
	}
}
export default connect(mapStateToProps, mapDispatchToProps)(AccountSettlementContainer);