Реагируйте, выберите цвет фона

#reactjs #react-native

Вопрос:

Есть какие-либо предложения, почему этот код не устанавливает цвет фона для выбора?

У меня есть образец, созданный в следующем месте

https://codesandbox.io/s/react-select-basic-forked-3z0kd?file=/src/index.js

Комментарии:

1. опора styles не style

2. Я изменил приведенный выше пример, чтобы использовать «стили», но все еще не работает

Ответ №1:

Добавьте это за пределами вашего класса:

 // BACKGROUND STYLES

const customStyles = {
  control: (base, state) => ({
    ...base,
    background: "#023950",
    // match with the menu
    borderRadius: state.isFocused ? "3px 3px 0 0" : 3,
    // Overwrittes the different states of border
    borderColor: state.isFocused ? "yellow" : "green",
    // Removes weird border around container
    boxShadow: state.isFocused ? null : null,
    "amp;:hover": {
      // Overwrittes the different states of border
      borderColor: state.isFocused ? "red" : "blue"
    }
  }),
  menu: (base) => ({
    ...base,
    // override border radius to match the box
    borderRadius: 0,
    // kill the gap
    marginTop: 0
  }),
  menuList: (base) => ({
    ...base,
    // kill the white space on first and last option
    padding: 0
  })
};
 

А затем реализуйте его на своем выбранном:

 <Select
          value={this.state.selectedOption}
          onChange={this.handleChange}
          options={this.options}
          styles={customStyles}
        />
 

вот ваш код с рабочим цветом фона:
https://codesandbox.io/s/react-select-basic-forked-5uyfb?file=/src/index.js

Ваше здоровье!

Комментарии:

1. Спасибо , это работает. Я собираюсь принять ваш ответ. Просто вопрос: Если я хочу установить цвет фона только тогда, когда выбран вариант 1 «Весна», то как это.параметры будут доступны в стиле?

2. мне так жаль, что я не знаю, как ответить на ваш вопрос… попробуйте сделать еще один вопросительный пост, и, надеюсь, люди помогут вашей проблеме

3. Конечно, сойдет, еще раз спасибо.

4. спасибо, что приняли мой ответ, я в ответ поддержал ваш пост 🙂