reactjs - react-select 如何制作预先选择的固定选项
问题描述
我想根据 w 制作一个无法删除的预选选项。无论是否访问过客户,这就是我想要实现的目标
const { clients } = this.props.clients;
const listOfClients =
clients !== null &&
clients.clients.map(client => ({
value: client._id,
label: client.company
? client.company
: client.lastname + " " + client.lastname,
last_visit: client.last_visit,
wilaya: client.wilaya,
visited: client.visited // true : false
}));
这就是我呈现选择选项的方式
<Select
name="clients"
isMulti
value={this.state.clients}
onChange={e => this.onChange(e, "clients")}
isClearable={this.state.clients.some(client => !client.visited)}
options={listOfClients || []}
className="basic-multi-select"
classNamePrefix="select"
/>
我的州拥有一系列客户,如下所示:
[{value: "5c0e784f0249ea83d88bddf3", label: "sarl medic", visited: true}]
如果visited = true ,那么这个选择的选项必须是灰色的并且不能被删除。我已经查看了这个例子,但我不明白我哪里出错了。谢谢 :)
解决方案
您的listOfClients
选项缺少重要的isFixed
,它应该与visited
我正确理解您的代码的值相同。
同样使用多选,您需要手动禁用删除功能,如下面的代码:
const listOfClients =
clients !== null &&
clients.map(client => ({
value: client._id,
label: client.company
? client.company
: client.lastname + " " + client.lastname,
last_visit: client.last_visit,
wilaya: client.wilaya,
visited: client.visited,
isFixed: client.visited // true : false
}));
class App extends Component {
constructor(props) {
super(props);
this.state = {
clients: []
};
}
onChange = (e, option) => {
if (option.removedValue && option.removedValue.isFixed) return;
this.setState({
clients: e
});
};
render() {
return (
<div className="App">
<Select
name="clients"
isMulti
value={this.state.clients}
onChange={this.onChange}
isClearable={!this.state.clients.some(client => client.visited)}
options={listOfClients || []}
className="basic-multi-select"
classNamePrefix="select"
styles={styles}
/>
</div>
);
}
}
这里有一个活生生的例子。
推荐阅读
- html - 高度和最大高度不适用于我在弹性框中的图像
- python - Python程序没有响应
- mysql - 导出mysql数据库时出现语法错误
- java - 西班牙语字符 (ú, í ) 在带有 Wicket 的 UI 上更改为 (ó , Ã) 并用 Java 编码
- python - 如何在没有表单模型的情况下创建帖子?
- javascript - Pass in Django Template Variable to JS function
- python - 如何制作内容每年增加一个单位的django模型字段
- django - 使用AWS弹性beantalk(使用nginx + gunicorn)部署django时出现ERR_CONNECTION_TIMED_OUT
- c# - Xunit 模拟 TokenClient 调用
- cs50 - CS50 复数 - 无法理解为什么使用 Candidate_count