1.0.3 • Published 2 years ago

ka-inject v1.0.3

Weekly downloads
-
License
ISC
Repository
-
Last release
2 years ago

微前端模式下无法获取到子应用内部的具体路由信息,现通过在子应用中劫持子路由的渲染进行KeepAlive嵌套

具体代码如下:

import React from 'react';
import { KeepAlive } from 'umi';

function KaInject(props) {
  const { route } = props;
  const { OriginComponent } = route;
  return (
    <KeepAlive>
      {OriginComponent ? <OriginComponent {...props} /> : 'unknown'}
    </KeepAlive>
  );
}

export default KaInject;
import KaInject from './KaInject';

const kaInject = item => {
  for (const r of item) {
    if (r.routes) {
      kaInject(r.routes);
    }
    const component = r.component;

    r.OriginComponent = component;
    r.component = KaInject;
  }
};

export default kaInject;