在一个用组件函数renderOptions()
动态创建的选项呈现选择字段的React组件中,我们如何也呈现一个空的option
元素(例如:<option value=""></option>
)作为第一个选项呢?
添加空的 <option>
之前的React代码
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>
)
}
尝试失败
render() {
return (
<div>
<div className="someDiv"></div>
<select>
{ this.props.usersAreLoading
? <option value="">Loading...</option>
: <option value=""></option> this.renderOptions()
}
</select>
</div>
)
}
发布于 2018-10-12 03:17:43
尝尝这个
<select>
{ this.props.usersAreLoading
&& <option value="">Loading...</option> }
{!this.props.usersAreLoading && <option value=""></option>}
{!this.props.usersAreLoading && this.renderOptions()}
</select>
发布于 2018-10-12 03:18:15
你必须单独渲染它:
{!this.props.usersAreLoading && <option value=""></option>}
{this.props.usersAreLoading
? <option value="">Loading...</option>
: this.renderOptions()
}
发布于 2018-10-12 03:23:07
最简单的方法(可能不是最优雅的)是使用两个条件
<select>
{ this.props.usersAreLoading
? <option value="">Loading...</option>
: <option value=""></option>
}
{!this.props.usersAreLoading && this.renderOptions()
}
</select>
https://stackoverflow.com/questions/52767304
复制相似问题