【问题标题】:Change the color of a select box's option in React在 React 中更改选择框选项的颜色
【发布时间】:2018-01-18 20:22:24
【问题描述】:

我有一个在选择标签中显示下拉列表的组件

const SortRetroDropdown = ({ handleFilterRetros, projects }) => {
  return (
    <div className='o-wrapper c-filter-retrospective'>
      <label htmlFor='c-start-retro-form-retroname'>Select to sort by project</label>
      <select className='c-start-retro-dropdown'
        defaultValue={'all'}
        name='projectList'
        form='start-retro-form'
        onChange={handleFilterRetros}>
        {projects}
      </select>
    </div>
  )
}

我需要在“选项”标签中更改选择内部的颜色。父组件使用此函数通过 props 传递:

  createProjectList (userProjects) {
    const projectsList = userProjects.map((project) => (
      <option key={project.get('id')} value={project.get('id')}>
        {project.get('name') === 'default' ? 'Unassigned' : project.get('name')}
      </option>
    ))
    return projectsList.push(<option key={'all'} value={'all'}>{'Show All'}</option>)
  }

这就是 props 的传递方式:

<SortRetroDropdown
   projects={this.createProjectList(userProjects)}
   handleFilterRetros={this.handleFilterRetros}
/>

我尝试创建一个类名来更改“选项”标签内的颜色,但没有成功。我该怎么做?

【问题讨论】:

    标签: css reactjs styles


    【解决方案1】:

    你设置option标签的样式:

    <option style={{ backgroundColor: 'red', color: 'blue' }} key={project.get('id')} value={project.get('id')}>
      {project.get('name') === 'default' ? 'Unassigned' : project.get('name')}
    </option>
    

    【讨论】:

    • @LizParody 我尝试了您的代码,仅使用静态数据而不是使用 project.get() 读取它。这对我来说似乎工作得很好。见here。您的样式表是否覆盖了某些东西(如果颜色设置为 !important 则可能)。尝试删除选择的类名。
    • @LizParody 顺便说一句,我看不出return projectsList.push(&lt;option key={'all'} value={'all'}&gt;{'Show All'}&lt;/option&gt;) 是如何工作的。 push() 返回数组的新长度。你不想返回数组吗?在这种情况下,在返回之前推送,然后返回数组。
    猜你喜欢
    • 2017-03-06
    • 2012-10-01
    • 2013-03-23
    • 2011-07-02
    • 1970-01-01
    • 2014-09-16
    • 2013-07-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多