我有一个带有选择框的React组件,它允许用户选择四个“严重性”标签之一,并且借助API,变量必须为小写。这是选择框...
<select id="logs-select" onChange={this.handleSeverityChange} value={this.state.dropSeverity}>
<option value="">Select: </option>
<option value="info">Info</option>
<option value="warning">Warning</option>
<option value="error">Error</option>
<option value="fatal">Fatal</option>
</select>
页面上还有其他三个选择框,感谢这个站点上的好朋友,我拥有以下功能,可以将变量出色地输出到URL ...
const names = [
"severity",
"domain",
"device",
"start",
"end"
]
const selectProps = {
selectedseverity: this.state.dropSeverity,
selecteddomain: this.state.dropDomain,
selecteddevice: this.state.dropDevice,
selectedstart: this.state.startDate,
selectedend: this.state.endDate
}
let url = `/inventory_reporter_api/logs?stage=PRODUCTION&` + names
.filter(name => selectProps["selected" + name] !== '')
.map(name => name.toLowerCase() + "=" + encodeURIComponent(selectProps["selected" + name]))
.join("&");
但是,我还要输出一个标题,该标题需要将“ severity”变量设为初始上限。这是我当前的功能:
let headline = `Logs for ` + names
.filter(name => selectProps["selected" + name] !== '')
.map(name => decodeURI(selectProps["selected" + name]) + " " + name.charAt(0).toUpperCase() + name.substr(1))
.join(" - ");
console.log('this is the headline ', headline)
“ name.charAt(0).toUpperCase()+ name.substr(1)”脚本可以很好地使标题中的“严重性”达到初始上限,但是我不知道如何转换所选的严重性可变为初始上限。我猜想我将需要在标题创建函数的“ .map”行上添加一些javascript,但是我不确定该怎么做。我希望我的解释和代码足够。我收到关于先前几个问题的警告,并考虑了该站点以及我所获得的所有宝贵帮助。
答案 0 :(得分:0)
.map(name => {
const newName = name.charAt(0).toUpperCase() + name.slice(1);
return decodeURI(selectProps["selected" + name]) + " " + newName;
}),
如果我正确地理解了您的信息,那么您几乎就拥有了。