将自定义数据属性添加到 Option 组件 react-select
Add custom data- attribute to Option component react-select
我正在使用 react-select 库为我的下拉可搜索组件创建一个测试。
在自定义 react-select documentation.
中定义的组件时,我无法将 data-testid
属性添加到 Option
组件
data-testid
属性未显示在 Option
元素的 DOM 中。
选项组件
import Select, { components } from 'react-select';
const CustomOption = (props: OptionProps<SearchDropdownOption, false>) => (
<components.Option {...props} data-testid="test-id" />
);
例如,我有一个 成功 ,Input
组件用于下拉列表的搜索版本,data-testid
属性显示在 DOM :
输入组件
import Select, { components } from 'react-select';
const CustomInput = (props: InputProps<SearchDropdownOption, false>) => (
<components.Input {...props} data-testid="test-id" />
);
并且比在 Select
组件中使用它:
<Select<SearchDropdownOption, false>
components={{
Input: CustomInput,
Option: CustomOption,
}}
isSearchable={isSearchable}
/>
无法像我对 Input
组件所做的那样将自定义属性 data-testid
直接添加到 Option
组件。我需要使用 HTML span
元素或任何其他元素扩展此组件,并将此属性直接添加到该元素:
const CustomOption = (props: OptionProps<SearchDropdownOption, false>) => {
return (
<components.Option {...props}>
<span data-testid="test-id" key={props.innerProps.key}>
{props.data.label}
</span>
</components.Option>
);
};
注意
这个 key
属性很重要,因为它为元素提供了常规的 React 唯一性,并且可以从 react-select 的 innerProps
属性:[=18= 中使用它的值]
key={props.innerProps.key}
我正在使用 react-select 库为我的下拉可搜索组件创建一个测试。
在自定义 react-select documentation.
data-testid
属性添加到 Option
组件
data-testid
属性未显示在 Option
元素的 DOM 中。
选项组件
import Select, { components } from 'react-select';
const CustomOption = (props: OptionProps<SearchDropdownOption, false>) => (
<components.Option {...props} data-testid="test-id" />
);
例如,我有一个 成功 ,Input
组件用于下拉列表的搜索版本,data-testid
属性显示在 DOM :
输入组件
import Select, { components } from 'react-select';
const CustomInput = (props: InputProps<SearchDropdownOption, false>) => (
<components.Input {...props} data-testid="test-id" />
);
并且比在 Select
组件中使用它:
<Select<SearchDropdownOption, false>
components={{
Input: CustomInput,
Option: CustomOption,
}}
isSearchable={isSearchable}
/>
无法像我对 Input
组件所做的那样将自定义属性 data-testid
直接添加到 Option
组件。我需要使用 HTML span
元素或任何其他元素扩展此组件,并将此属性直接添加到该元素:
const CustomOption = (props: OptionProps<SearchDropdownOption, false>) => {
return (
<components.Option {...props}>
<span data-testid="test-id" key={props.innerProps.key}>
{props.data.label}
</span>
</components.Option>
);
};
注意
这个 key
属性很重要,因为它为元素提供了常规的 React 唯一性,并且可以从 react-select 的 innerProps
属性:[=18= 中使用它的值]
key={props.innerProps.key}