import React from 'react'; import { Icon, Tabs, Card, Flex, WingBlank, WhiteSpace } from 'antd-mobile'; import { StickyContainer, Sticky } from 'react-sticky'; import Mycard from '../../../components/marketCard' import NavBar from '../../../components/topNavBar' import { connect } from 'react-redux'; import * as fetchData from '../../../redux/actions/actions_fetchServerData' import RecordTop from '../components/TransactionRecord/RecordTop' import RecordItem from '../components/TransactionRecord/recordItem' import { Helmet } from 'react-helmet' class txRecordPage extends React.Component { constructor(props) { super(props); this.state = { }; this.props.dispatch(fetchData.fetchMyTransactionRecord(null, (ret) => { })) } componentWillMount() { this.props.dispatch(fetchData.fetchMyTransactionRecord(null, (ret) => { })) } componentDidMount() { } render() { const { isLoading, serverError, recordItemData, recordTopData } = this.props.serverData console.log(recordTopData) return ( <div> <Helmet> <title>交易記錄</title> </Helmet> <RecordTop data={recordTopData} /> <RecordItem data={recordItemData} /> </div> ); } } const mapStateToProps = store => { return { serverData: store.Transaction_recordState, } } export default connect(mapStateToProps)(txRecordPage);
//收藏功能 export function mineFavorateCollect(id,isCollect){ return (dispatch)=>{ dispatch({ 'type':TYPES.MINE_FAVORATE_UNCOLLECT, 'isCollect':isCollect, 'idValue':id, }) } } //置頂功能 export function mineFavorateToTop(idTop,isToTop){ return (dispatch)=>{ dispatch({ 'type':TYPES.MINE_FAVORATE_TOTOP, 'isToTop':isToTop, 'idTop':idTop, }) } }
function fetchDataFromServer(token, url, fetchType, callback, fakeData_needToDelete) { return (dispatch) => { dispatch({ 'type': fetchType.fetching, }) var params = { 'token': token } fetch(url, { method: 'POST', mode: "no-cors", headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(params) }).then((ret) => { dispatch({ 'type': fetchType.received, // 'data': ret, 'data': fakeData_needToDelete }) callback(ret) }).catch((error) => { dispatch({ 'type': fetchType.error, 'data': error }) callback(error) }); } }
request.getWithToken = (url, token, callback) => { // console.log('url:' + url); return fetch(url, { method: 'GET', headers: { //header 'Content-Type': 'application/json', 'Authorization': token }, }).then((response) => response.json()) .then((responseData) => { // 上面的轉好的json // console.log(responseData); if (responseData.code === '0') { callback({ 'isSuccess': true, "data": responseData.data });//返回成功的交易id } else { callback({ 'isSuccess': false, "data": responseData.msg });//返回錯誤,通常是充太多了,通常累計不超過1個eth } }).catch((error) => { // console.log(error); // callback({ 'isSuccess': false, "data": "network error!" });//網絡鏈接失敗 });
export const FETCH_MY_TRANSACTION_RECORD = { received: "FETCH_TRANSACTION_RECORD_RECEIVED", fetching: "FETCH_TRANSACTION_RECORD_FETCHING", error: "FETCH_TRANSACTION_RECORD_ERROR" }
import * as fetchTypes from '../actions/fetchTypes' const initialState = { isLoading: false, recordItemData:[], recordTopData:[], serverError:false, } export default function Transaction_record_Reducer(state = initialState, action) { switch (action.type) { case fetchTypes.FETCH_MY_TRANSACTION_RECORD.received: console.log( action.data) return { ...state, recordTopData: action.data.recordTopData, recordItemData: action.data.recordItemData, serverError: false, isLoading: false, }; break; case fetchTypes.FETCH_MY_TRANSACTION_RECORD.fetching: return { ...state, serverError: false, isLoading: true, }; break; case fetchTypes.FETCH_MY_TRANSACTION_RECORD.error: return { ...state, serverError: false, isLoading: false, }; break; default: return state; } }
import { combineReducers } from 'redux' import myMarketPage from './reducer_myMarketPage' import findPage from './reducer_findPage' const rootReducer = combineReducers({ marketPageState: myMarketPage, findPageState: findPage, }) export default rootReducer
import { createStore, applyMiddleware } from 'redux'; import rootReducer from '../reducers/root'; import thunk from 'redux-thunk'; let createStoreWithMiddleware = applyMiddleware(thunk)(createStore); let store = createStoreWithMiddleware(rootReducer); export default store;
在頁面的根組件下,引入react-redux ,並用provider包裹,並將其導出react
import React, { Component } from 'react'; import Router from './components/framework/router' import store from './redux/store/store' import { Provider } from 'react-redux'; class App extends Component { render() { return ( <div className="App"> <Router /> </div> ); } } const AppWithRedux = () => ( <Provider store={store}> <App /> </Provider> ) export default AppWithRedux;