javascript - 选择时如何更改反应选择选项样式
问题描述
我正在使用 react-select latest 创建一个异步选择组件。一旦我选择了一些值,我正在尝试更改选择的背景颜色和边框颜色。我浏览了文档并尝试使用state.isSelected有条件地更改背景颜色。但没有帮助。
当值如下选择时,我想更改背景颜色以及边框颜色。但似乎什么也没有发生。帮助将不胜感激
解决方案
方法
参考文档:react-select自定义样式
您可以覆盖不同域中默认提供的样式。
在这种情况下,基本控制就足够了。
const customStyles = stateValue => ({
control: (provided, state) => ({
...provided,
backgroundColor: stateValue ? "gray" : "white"
})
});
演示
资源
import React, { useState } from "react";
import Select from "react-select";
const options = [
{ value: "chocolate", label: "Chocolate" },
{ value: "strawberry", label: "Strawberry" },
{ value: "vanilla", label: "Vanilla" }
];
const customStyles = value => ({
control: (provided, state) => ({
...provided,
alignItems: "baseline",
backgroundColor: value ? "gray" : "white"
})
});
const App = () => {
const [selected, setSelected] = useState("");
const onChange = e => {
setSelected(e.value);
};
const onClickButton = () => {
setSelected("");
};
const displayItem = selected => {
const item = options.find(x => x.value === selected);
return item ? item : { value: "", label: "" };
};
return (
<>
<Select
options={options}
styles={customStyles(selected)}
onChange={onChange}
value={displayItem(selected)}
/>
<button onClick={onClickButton}> Clear Selection </button>
</>
);
};
export default App;
推荐阅读
- vb6 - 如何在vb6中打印图像
- swift - Swift 4:放大用户位置以外的位置
- python - 通过 Python 将颜色分配给 matplotlib 中的特定值?
- vba - 无法通过 VBA 中的字符串值访问 excel 数据透视表字段
- javascript - ng-if 没有根据变量更新
- chef-infra - 刀:找不到命令
- python - 从列表中创建多个复选框并获取所有值
- powershell - PowerShell 脚本不会按顺序运行
- grails - com.nimbusds.jose.JOSEException:不支持的 JWS 算法 RS256,在使用 Auth0 令牌时必须是 HS256、HS384 或 HS512
- jquery - jQuery将单独的对象水平滚动在一起