reactjs - 如何禁用 PrimeReact ListBox 中的列表项之一?
问题描述
对于PrimeReact ListBox实现:
const cities = [
{name: 'New York', code: 'NY'},
{name: 'Rome', code: 'RM'},
{name: 'London', code: 'LDN'},
{name: 'Istanbul', code: 'IST'},
{name: 'Paris', code: 'PRS'}
];
<ListBox
optionLabel="name"
optionValue="code"
value={city}
options={cities}
onChange={(e) => setCity(e.value)}
/>
我得到了带有列表项的正确面板。但是如何禁用列表项,例如如果需要禁用纽约被选中,如何实现?
解决方案
解决方案是传递属性名称以匹配禁用状态的选项,如下所示:
const cities = [
{ name: 'New York', code: 'NY', disabled: true },
{ name: 'Rome', code: 'RM' },
{ name: 'London', code: 'LDN' },
{ name: 'Istanbul', code: 'IST' },
{ name: 'Paris', code: 'PRS' },
];
<ListBox
optionLabel="name"
optionValue="code"
value={city}
options={cities}
optionDisabled="disabled"
onChange={(e) => setCity(e.value)}
/>
或者一个决定哪个被禁用的函数,其中选项是列表中的一项,而列表正在被迭代
const cities = [
{ name: 'New York', code: 'NY' },
{ name: 'Rome', code: 'RM' },
{ name: 'London', code: 'LDN' },
{ name: 'Istanbul', code: 'IST' },
{ name: 'Paris', code: 'PRS' },
];
<ListBox
optionLabel="name"
optionValue="code"
value={city}
options={cities}
optionDisabled={(option) => option.name === 'New York"}
onChange={(e) => setCity(e.value)}
/>
推荐阅读
- html - 如何计算自定义 ValidityState
- c++ - How to group decimal places as well?
- hive - 为什么在 Hive 中映射器的数量变化如此之大以进行插入覆盖
- java - 无法解压缩 zip4j 库 java 创建的 zip 文件
- r - 如何修复R中的“替换有x行,数据有z”
- javafx - 为什么我的 CellFactory 中的第一个 TableRow 为空?
- php - 我从数据库中下载图像的功能不起作用
- html - 悬停时触发可翻转卡片的问题
- selenium - Chrome 无头不适用于重定向 (OAUTH2)
- reactjs - 如何在 React 中使用 web3?