作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想为 react-select 设置全局样式.据我了解,我可以采用两种方式:
使用 className
和 classNamePrefix
,然后使用 CSS 定位元素。
优点:我可以在任何地方使用相同的样式
缺点:每个新组件都必须使用完全相同的 className
和 classNamePrefix
例子:
className='react-select-container'
classNamePrefix="react-select"
结果:
<div class="react-select-container">
<div class="react-select__control">
<div class="react-select__value-container">...</div>
<div class="react-select__indicators">...</div>
</div>
<div class="react-select__menu">
<div class="react-select__menu-list">
<div class="react-select__option">...</div>
</div>
</div>
</div>
使用 "Provided Styles and State" 创建外部 javascript 文件
优点:比 CSS 更灵活
缺点:每个新组件都必须使用导入的外部文件的样式属性。
例子:
const customStyles = {
option: (provided, state) => ({
...provided,
borderBottom: '1px dotted pink',
color: state.isSelected ? 'red' : 'blue',
padding: 20,
}),
control: () => ({
// none of react-select's styles are passed to <Control />
width: 200,
}),
singleValue: (provided, state) => {
const opacity = state.isDisabled ? 0.5 : 1;
const transition = 'opacity 300ms';
return { ...provided, opacity, transition };
}
}
const App = () => (
<Select
styles={customStyles}
options={...}
/>
);
设置多个 react-select 组件样式的最佳方式是什么?是否可以全局设置样式并且每个新的 react-select 组件都自动使用该样式?
最佳答案
一种方法是创建您自己的选择组件,例如您导入的 CustomSelect
,而不是您在其中设置自定义 样式的
或 react-select
theme
如:
import React, { Component } from 'react'
import Select from 'react-select'
class CustomSelect extends Component {
render() {
const styles = {
...
// what ever you need
}
return <Select styles={styles} {...this.props} />
}
}
export default CustomSelect
我真的不能说这是否是最好的方法,但我已经尝试过这两种方法,并且在一个有很多选择的大项目中,这是维护/修改它的最简单方法。此外,如果您在某些时候需要自定义组件,这将非常方便。
关于javascript - 如何为 react-select.js 设置全局样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54046507/
我是一名优秀的程序员,十分优秀!