zoukankan      html  css  js  c++  java
  • react native redux saga增加日志功能

    redux-logger地址:https://github.com/evgenyrodionov/redux-logger

    目前Reac native项目中已经使用redux功能,异步中间件使用redux saga,但在处理时,也需要增加redux打印日志的功能,所以需要增加redux-logger功能

    /**
     * Sample React Native App
     * https://github.com/facebook/react-native
     * @flow
     */
    
    import React, { Component } from 'react';
    import {
      Platform,
      StyleSheet,
      Text,
      View
    } from 'react-native';
    import Icon from 'react-native-vector-icons/FontAwesome'
    
    //router
    import { Router, Scene, Tabs } from 'react-native-router-flux';
    
    //redux
    import { createStore, applyMiddleware } from 'redux';
    import { Provider } from 'react-redux';
    
    //redux logger
    import logger from 'redux-logger';
    
    //reducers 
    import allReducers from './src/reducers';
    
    //containers
    import HomeContainer from './src/containers/HomeContainer';
    import OrderContainer from './src/containers/OrderContainer';
    import MainContainer from './src/containers/MainContainer';
    //user containers
    import UserLoginContainer from './src/containers/user/UserLoginContainer';
    import UserRegisterContainer from './src/containers/user/UserRegisterContainer';
    //check containers
    import StyleCheckContainer from './src/containers/check/StyleCheckContainer';
    import HandmadeCheckContainer from './src/containers/check/HandmadeCheckContainer';
    import SizeCheckContainer from './src/containers/check/SizeCheckContainer';
    import FittingCheckContainer from './src/containers/check/FittingCheckContainer';
    //storage
    import storage from './src/util/tqsStorage';
    
    //mutil language
    import I18n from './src/config/i18n';
    
    //saga
    import createSagaMiddleware from 'redux-saga';
    import rootSaga from './src/sagas/rootSaga';
    
    const sagaMiddleware = createSagaMiddleware();
    let store = createStore(allReducers, applyMiddleware(logger,sagaMiddleware));
    
    //run all saga function
    sagaMiddleware.run(rootSaga);
    
    export default class App extends Component<{}> {
      constructor(props) {
        super(props);
        this.state = {
        }
      }
      componentDidMount() {
      }
      render() {
        return (
          <Provider store={store}>
            <Router>
              <Scene key='root'>
                <Scene key='UserLogin' component={UserLoginContainer} title={I18n.t('App.UserLogin_Title')} initial={true} hideNavBar={true} />
                <Scene key='UserRegister' component={UserRegisterContainer} title={I18n.t('App.UserRegister_Title')} />
                <Scene key='Home' component={HomeContainer} title={I18n.t('App.Home_Title')} hideNavBar={true} />
                <Scene key='Order' component={OrderContainer} title={I18n.t('App.Order_Title')} hideNavBar={true} />
                <Scene key='Main' component={MainContainer} title={I18n.t('App.Main_Title')} hideNavBar={true} />
    
                <Scene key='StyleCheck' component={StyleCheckContainer} title={I18n.t('App.StyleCheck_Title')} hideNavBar={true} />
                <Scene key='HandmadeCheck' component={HandmadeCheckContainer} title={I18n.t('App.HandmadeCheck_Title')} hideNavBar={true} />
                {/* <Scene key='FittingCheck' component={FittingCheckContainer} title={I18n.t('App.UserRegister_Title')} hideNavBar={true} />
                <Scene key='FittingCheck' component={FittingCheckContainer} title={I18n.t('App.UserRegister_Title')} hideNavBar={true} /> */}
                <Scene key='SizeCheck' component={SizeCheckContainer} title={I18n.t('App.SizeCheck_Title')} hideNavBar={true} />
                <Scene key='FittingCheck' component={FittingCheckContainer} title={I18n.t('App.FittingCheck_Title')} hideNavBar={true} />
              </Scene>
            </Router>
          </Provider>
        );
      }
    }

    运行时,打开远程调试,可以在Chrome开发工具中看到日志信息

    有了日志功能后,可以比较简单的查看到action的type及其他参数,也可以看到每一个action发生前与发生后state(reducers)的变化

     

  • 相关阅读:
    筛选法求素数
    C/C++经典面试题目
    操作系统笔试面试基本内容
    Win32/MFC的基本概念
    STL采用的标准模板库
    数据结构基本概念
    SQL基础语句
    C/C++基础概念
    计算机网络基础概念
    流水作业 批作业调度
  • 原文地址:https://www.cnblogs.com/weschen/p/8985449.html
Copyright © 2011-2022 走看看