首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在React中,如何同时返回JSX和返回更多JSX的JS函数?

在React中,如何同时返回JSX和返回更多JSX的JS函数?
EN

Stack Overflow用户
提问于 2018-10-12 03:10:10
回答 5查看 2.4K关注 0票数 5

在一个用组件函数renderOptions()动态创建的选项呈现选择字段的React组件中,我们如何也呈现一个空的option元素(例如:<option value=""></option>)作为第一个选项呢?

添加空的 <option>之前的React代码

代码语言:javascript
复制
renderOptions() {
    return (
        this.props.users.map(user => (
            <option key={ user._id } value={ user._id }>{ user.name }</option>
        ))
    )
}


render() {
    return (
        <div>
            <div className="someDiv"></div>

            <select>
                { this.props.usersAreLoading 
                    ? <option value="">Loading...</option> 
                    : this.renderOptions()
                }            
            </select>
        </div>
    )
}

尝试失败

代码语言:javascript
复制
render() {
    return (
        <div>
            <div className="someDiv"></div>

            <select>
                { this.props.usersAreLoading 
                    ? <option value="">Loading...</option> 
                    : <option value=""></option> this.renderOptions()
                }            
            </select>
        </div>
    )
}
EN

回答 5

Stack Overflow用户

发布于 2018-10-12 03:17:43

尝尝这个

代码语言:javascript
复制
 <select>
        { this.props.usersAreLoading 
                && <option value="">Loading...</option> }
        {!this.props.usersAreLoading && <option value=""></option>} 
        {!this.props.usersAreLoading && this.renderOptions()}           
   </select>
票数 0
EN

Stack Overflow用户

发布于 2018-10-12 03:18:15

你必须单独渲染它:

代码语言:javascript
复制
{!this.props.usersAreLoading && <option value=""></option>}

{this.props.usersAreLoading 
  ? <option value="">Loading...</option> 
  : this.renderOptions()
} 
票数 0
EN

Stack Overflow用户

发布于 2018-10-12 03:23:07

最简单的方法(可能不是最优雅的)是使用两个条件

代码语言:javascript
复制
        <select>
            { this.props.usersAreLoading 
                ? <option value="">Loading...</option> 
                : <option value=""></option>
            } 
           {!this.props.usersAreLoading && this.renderOptions()
      } 

        </select>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52767304

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档