javascript - React material-ui Autocomplete的多个选定值?
问题描述
我在多选模式下使用Material-ui Autocomplete。我想在提交表单时获取所有选定的值。根据这个Stackoverflow 线程,我们可以在 onChange 事件处理程序上获取单独的值,但我想要一个简化的解决方案,在表单提交时获取所有选定的值。这是自动完成的标记
<Autocomplete
multiple
id="checkboxes-tags-demo"
options={devicesAndGroups}
disableCloseOnSelect
getOptionLabel={(option: any) => option.name}
renderOption={(option, { selected }) => (
<React.Fragment>
<Checkbox
icon={icon}
checkedIcon={checkedIcon}
style={{ marginRight: 8 }}
checked={selected}
/>
{option.name}
</React.Fragment>
)}
style={{ width: "100%" }}
renderInput={(params) => (
<TextField
{...params}
name="selectedDevices"
variant="outlined"
label="Devices/Groups"
placeholder="Devices"
/>
)}
/>;
是否有自动完成的任何属性,可以随时获取所有选定的值?
解决方案
我正在使用 Redux-toolkit 进行状态管理,并通过推动 Redux 商店中每个单个选项的选择取消选择来解决该问题。
const onSelectionChanged = (...params: any) => {
const changedOption = params[3].option;
const selectionType = params[2]; // selected/deselected ... in case of selection, it's === "select-option"
dispatch<any>(
devicesThunkActions.selectDeselect({ changedOption, selectionType })
);
};
.
.
.
onChange={onSelectionChanged}
renderInput={(params) => (
<TextField
{...params}
name="selectedDevices"
variant="outlined"
label="Devices/Groups"
placeholder="Devices"
className={classes.customPadding}
/>
)}
推荐阅读
- android - 材料芯片 - 找不到资源 ID(颜色/图标)
- c++ - 为什么 MPI_Win_allocated_shared 的共享内存实际上并不是每个人都可以访问的?
- uitableview - 我在找不到 Swift4 时加载 json 数据时遇到问题,为什么?
- delphi - 将 JS 扩展演示 (CEF4Delphi) 从 Delphi 转换为 C++Builder 失败 OnWebKitInitialized
- react-native - 如何使用 react-native 代理 HTTPS 请求
- dart - 如何在 Youtube 和 Instagram 应用程序中实现导航堆栈?
- python-3.x - 无法显示图片
- c# - 匹配除该组先前选择的字符之外的任何内容
- linux - 同时启动两个进程并从之前完成的进程中收集结果
- css - CSS 动画适用于桌面浏览器,但不适用于手机浏览器。有什么办法可以解决这个问题?