包详细信息

rn-collie-proxy

syiyi161.0.5

A proxy for react native,it can proxy function and object

rn-collie, react-native, es6-proxy, proxy

自述文件

支持对同一个方法进行多次拦截,

支持对一个对象的不同方法进行拦截

支持链式调用

intercept方法返回代理对象

next()方法执行最后一次被拦截的方法

代理Function ``` jsx harmony

/**

  • 防止重复点击的过滤器 */ export default class ClickFilterInterceptor extends BaseInterceptor { static _lastClick = 0;

    onHandle(method: MethodEntity) {

     let now = this.getNow();
     if (now - ClickFilterInterceptor._lastClick >= Constants.CLICK_FILTER_TIME) {
         let timer = new Timer(Constants.CLICK_FILTER_TIME, () => {
             ClickFilterInterceptor._lastClick = this.getNow();
             timer.stop();
         });
         timer.start();
         method.invoke();
     } else {
         method.cancel();
     }

    }

    getNow() {

     return new Date().getTime();

    } }

Proxy.createFun(onPress).intercept(null, ...realItp).next(e);

**代理Object**
拦截navigation对象的navigate方法
proxy等同于被拦截的对象
```jsx harmony
let proxy = Proxy.createObject(navigation).intercept('navigate', new LoginInterceptor());
proxy.navigate('minePage');//or proxy.next('minePage');