使用预加载功能的Reactjs延迟加载

时间:2020-10-14 06:39:37

标签: reactjs lazy-loading preloading react-lazy-load

我想预加载组件,即在用户访问链接之前加载组件。下面是代码片段,延迟加载可以正常工作,但无法预加载组件。我可以根据Suspense Fallback查看加载消息。有人请帮忙。谢谢。

const ReactLazyPreload = importStatement => {

    const Component = React.lazy(importStatement);
  
    Component.preload = importStatement;
  
    return Component;
  
  };
const AddSubUser = ReactLazyPreload(() => import("./AddSubUserComponent"));
const BusinessChange = ReactLazyPreload(() => import("./BusinessChangeComponent"));

class Main extends Component {
    componentDidMount() {
        AddSubUser.preload();
        BusinessChange.preload();
    }
    ....
    }

....

<React.Suspense fallback={"Loading"}>
                    <Route exact path="/business/addsubuser" component={() => <AddSubUser addSubUserMessage={this.props.addSubUserMessage} postAddSubUser={this.props.postAddSubUser} resetAddSubUserForm={this.props.resetAddSubUserForm} getSubUserList={this.props.getSubUserList} subUserList={this.props.subUserList} deleteSubUser={this.props.deleteSubUser} deleteSubUserState={this.props.deleteSubUserState} />} />
                    <Route exact path="/business/businessdetail/businesschange/:businessid" component={BusinessChangeId} />
                </React.Suspense>
                
....

0 个答案:

没有答案
相关问题