如何避免渲染元素尽可能简单

女妖

我有一个reactJS组件,看起来像这样:

var LikeCon = React.createClass({
    render(){
        return this.renderLikeButton(this.props.like, this.props.likeCount)
    },
    renderLikeButton(like, likeCount){
        var content;
        var tmpLikeCount;

        if(likeCount < 1){
            tmpLikeCount = "";
        }
        else{
            tmpLikeCount = likeCount;
        }


        if(like == 1){
            content = <div className="likeButConAct"><div className="likeB">&nbsp;</div><div className="likeCount">{tmpLikeCount}</div></div>
        }
        else{
            content = <div className="likeButCon"><div className="likeB">&nbsp;</div><div className="likeCount">{tmpLikeCount}</div></div>
        }
        return content;
    }
});

假设如果没有喜欢,我想隐藏likeCount元素。我如何做到这一点尽可能简单?我不希望其他组件呈现此内容。

科林·拉姆齐(Colin Ramsay)

如果您的变量为null或未定义,那么React根本不会渲染它。这意味着您的条件代码可以很简单:

var tmpLikeCount;

if(likeCount >= 1){
    tmpLikeCount = likeCount;
}

但是我认为您可以使用类集使代码更简单:

http://facebook.github.io/react/docs/class-name-manipulation.html

var LikeCon = React.createClass({
    render(){
        var likeCountCmp;
        var classes = React.addons.classSet({
            likeButCon: true,
            active: this.props.like
        });

        if(this.props.likeCount > 0) {
            likeCountCmp = <div className="likeCount">{this.props.likeCount}</div>;
        }

        return (
            <div className={classes}>
                <div className="likeB">&nbsp;</div>
                {likeCountCmp}
            </div>
        )
    }
});

我认为可行的最后一种变体是使用隐式函数返回:

var LikeCon = React.createClass({
    render(){
        var classes = React.addons.classSet({
            likeButCon: true,
            active: this.props.like
        });

        return (
            <div className={classes}>
                <div className="likeB">&nbsp;</div>
                {this.getLikeCountCmp()}
            </div>
        )
    },

    getLikeCountCmp: function() {
        if(this.props.likeCount > 0) {
            return <div className="likeCount">{this.props.likeCount}</div>;
        }
    }
});

如果我们没有从专门返回任何内容getLikeCountCmp,我们将最终得到undefined,React将其呈现为空。

请注意,我对您的like == 1比较有点困惑-应该是真/假而不是数字吗?this.props.like在我的示例中,我假设是对还是错。这意味着可以通过以下方式调用它:

<LikeCon like={true|false} likeCount={5} />

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Excel VBA中优化(或尽可能避免)循环

来自分类Dev

如何在Excel VBA中优化(或尽可能避免)循环

来自分类Dev

避免尽可能多地收集火花

来自分类Dev

是否应尽可能避免循环范围?

来自分类Dev

Caffe:根据快照预测图像尽可能简单

来自分类Dev

Python:鼠标单击的坐标尽可能简单

来自分类Dev

如何使上一个元素零次或多次,但次数尽可能少?

来自分类Dev

当某些元素是可选的时,如何强制正则表达式尽可能保守?

来自分类Dev

算法:如何将固定长度的圆形阵列中的新元素尽可能地远离现有元素?

来自分类Dev

如何使JPanel中的组件尽可能伸展?

来自分类Dev

如何创建尽可能短的URL唯一ID?

来自分类Dev

如何使Python生成器尽可能快?

来自分类Dev

如何使wkhtmltopdf在尽可能多的情况下工作?

来自分类Dev

x:Bind与经典Binding的比较如何尽可能简洁?

来自分类Dev

如何尽可能多地输入x和y?

来自分类Dev

如何尽可能快地进行矩阵计算

来自分类Dev

如何使图像文件尽可能密集?

来自分类Dev

如何使用easystarjs尽可能遵循这种方式

来自分类Dev

如何使JPanel中的组件尽可能伸展?

来自分类Dev

如何使wkhtmltopdf在尽可能多的情况下工作?

来自分类Dev

如何尽可能地压缩图像?

来自分类Dev

如何水平放置尽可能多的 <div>

来自分类Dev

如何以尽可能低的权重保存文件

来自分类Dev

使div尽可能宽

来自分类Dev

使div尽可能宽

来自分类Dev

如何尽可能平衡地将一个主阵列的元素分布到另外 2 个阵列?

来自分类Dev

命名对象与临时对象:尽可能避免使用命名对象更好吗?

来自分类Dev

是否应尽可能避免使用JS,而应使用CSS?

来自分类Dev

从您自己的迭代器返回可变引用的尽可能简单的示例

Related 相关文章

  1. 1

    如何在Excel VBA中优化(或尽可能避免)循环

  2. 2

    如何在Excel VBA中优化(或尽可能避免)循环

  3. 3

    避免尽可能多地收集火花

  4. 4

    是否应尽可能避免循环范围?

  5. 5

    Caffe:根据快照预测图像尽可能简单

  6. 6

    Python:鼠标单击的坐标尽可能简单

  7. 7

    如何使上一个元素零次或多次,但次数尽可能少?

  8. 8

    当某些元素是可选的时,如何强制正则表达式尽可能保守?

  9. 9

    算法:如何将固定长度的圆形阵列中的新元素尽可能地远离现有元素?

  10. 10

    如何使JPanel中的组件尽可能伸展?

  11. 11

    如何创建尽可能短的URL唯一ID?

  12. 12

    如何使Python生成器尽可能快?

  13. 13

    如何使wkhtmltopdf在尽可能多的情况下工作?

  14. 14

    x:Bind与经典Binding的比较如何尽可能简洁?

  15. 15

    如何尽可能多地输入x和y?

  16. 16

    如何尽可能快地进行矩阵计算

  17. 17

    如何使图像文件尽可能密集?

  18. 18

    如何使用easystarjs尽可能遵循这种方式

  19. 19

    如何使JPanel中的组件尽可能伸展?

  20. 20

    如何使wkhtmltopdf在尽可能多的情况下工作?

  21. 21

    如何尽可能地压缩图像?

  22. 22

    如何水平放置尽可能多的 <div>

  23. 23

    如何以尽可能低的权重保存文件

  24. 24

    使div尽可能宽

  25. 25

    使div尽可能宽

  26. 26

    如何尽可能平衡地将一个主阵列的元素分布到另外 2 个阵列?

  27. 27

    命名对象与临时对象:尽可能避免使用命名对象更好吗?

  28. 28

    是否应尽可能避免使用JS,而应使用CSS?

  29. 29

    从您自己的迭代器返回可变引用的尽可能简单的示例

热门标签

归档