为什么此Javascript初始上限功能不起作用?

时间:2019-01-14 14:56:51

标签: javascript reactjs

我有一个带有选择框的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,但是我不确定该怎么做。我希望我的解释和代码足够。我收到关于先前几个问题的警告,并考虑了该站点以及我所获得的所有宝贵帮助。

1 个答案:

答案 0 :(得分:0)

.map(name =>  {
  const newName = name.charAt(0).toUpperCase() + name.slice(1);
  return decodeURI(selectProps["selected" + name]) + " " + newName;
}),

如果我正确地理解了您的信息,那么您几乎就拥有了。