如何在view中进行判断



  • 当前我是提外面来做的比如这个

                        {bannerList.map((banner) => {
                            if (banner.link)
                                return (
                                    <TouchableOpacity key={banner.name}
                                                      onPress={()=>this.context.router.push('/'+banner.link)}
                                                      activeOpacity={0.75}>
                                        <Image
                                            style={styles.bannerImage}
                                            resizeMode="contain"
                                            source={{uri: banner.key}}
                                        />
                                    </TouchableOpacity>
                                );
                            else
                                return (
                                    <TouchableOpacity key={banner.name}
                                                      activeOpacity={0.75}>
                                        <Image
                                            style={styles.bannerImage}
                                            resizeMode="contain"
                                            source={{uri: banner.key}}
                                        />
                                    </TouchableOpacity>
                                );
                        })}
    

    if 与 else中的内容差别就在一个onPress 请问是否有更简单的写法来满足需求 直接在 onPress中执行而不是复制代码


  • administrators

    <TouchableOpacity onPress={banner.link && ()=> this.context.router.push('/'+banner.link)}}>
    
     // 或者
    <TouchableOpacity onPress={()=> banner.link && this.context.router.push('/'+banner.link)}}>
    
    
    


  • @sunnylqm 原来可以这样写 笨死了 一碰到语法 就跟傻了似的 多谢



  • @sunnylqm 有个问题 我刚才将你的写法放入到 代码中发现报错,我修改成一下语句

                                                  onPress={(banner.link) && (()=>this.context.router.push('/'+banner.link))}
    
    

    后正常


  • administrators

    嗯 后者打上括号即可 banner.link不必打括号



  • @sunnylqm 是的 前面banner.link 不需要括号


登录后回复