react.js - React 高阶组件逻辑加载子组件

查看:75
本文介绍了react.js - React 高阶组件逻辑加载子组件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

一个选项卡,分别三项内容,我把三项内容分为三个组件,另外配置一个高阶组件用于逻辑加载组件,如图:

三个li里分别是选项列表,外部引入内容组件,Compon是引入的内容组件分别有三个,我想问的是在高阶组件中,怎样去加载引入的不同组件呢?  就在code-loaderBox里,我的想法是建立一个属性,然后通过点击li时的逻辑 把组件赋给这个属性,最后在div中只写那个属性就ok了,请问这种方法可行吗?或者说有没有更简便的方式;

解决方案

谢邀~

首先我没太读懂你是想做什么, 我的理解是当你点击li, 切换下方的code-loaderBox去显示不同的组件?

其次, 看到你的代码我提几个意见, 仅供参考.

  1. 不使用jquery, 用state去保存状态

  2. li可以使用一个数组对象去封装好参数, 这样传参也比较方便, render之前可以动态生成一个list

const list;
list = 数组.map(function(o, i, objs){
    return <li onclick={this.onClick(i))} key={i} >{o.name}</li>
});

return中

<ul>
    {list}
</ul>

onClick中

    onClick(i){
        //传入的参数, 可以为任意含义的参数, 但必须唯一
        //根据不同情况去
        var status = 某种情况;
        this.setState({status: status});
    }

code-loaderBox中动态显示某些组件

<div>
   this.state.status == 某种情况 ? <某种情况下的组件 /> : null
   this.state.status == 某种情况 ? <某种情况下的组件 /> : null
   this.state.status == 某种情况 ? <某种情况下的组件 /> : null
   ...
   //多个的话也可以写一个switch
</div>

这篇关于react.js - React 高阶组件逻辑加载子组件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆