如何进行条件判断后再加载某个组件

我不想直接加载某个组件,想在某个条件判断之后再加载这个组件,请问用什么方式可以这样

图片描述

阅读 5.4k
4 个回答

可以的。

this.state = {
  modules: [a, b, c]
};

componentWillMount() {
  var modules = this.state.modules;
  if(...) {
    modules.push(d);
    this.setState({
      modules: modules
    });
  }
}

render() {
  {
    this.state.modules.map(function(m) {
      var M = loader.modules[m]; // loader中加载了所有模块
      return <M />
    })
  }
}

loader大概是这个样子

var modules = {};

[a, b, c, d].forEach((m) => {
  modoles.m = require(m);
});
module.exports = {
  modules: modules
}

这个是大概写的一下,不要纠结细节,意思到了就行。。

加载组件的语句写在if语句里面

为什么要这样……

你可以Import进来,根据条件判断是不是将它插入到你export的那个组件中就好了。

厉害了,原来还有这种方法。但是想问一下的loader.modules是什么语法啊,没有见到过这种。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题