gpt4 book ai didi

javascript - 在 onSelect 时从 Material-ui 自动完成中检索条目的键,而不是值

转载 作者:行者123 更新时间:2023-12-02 22:50:37 24 4
gpt4 key购买 nike

我正在使用 React 和 Material-ui 以及此处记录的自动完成组件 - https://material-ui.com/components/autocomplete/降档。

                <Downshift id="downshift-options">
{({
clearSelection,
getInputProps,
getItemProps,
getLabelProps,
getMenuProps,
highlightedIndex,
inputValue,
isOpen,
openMenu,
selectedItem,
}) => {
const {onSelect, onBlur, onChange, onFocus, ...inputProps} = getInputProps({
onChange: event => {
if (event.target.value === '') {
clearSelection();
}
},
onSelect: event => {
if (event.target.id) {
this.props.onSelect(event.target.value);
}

},
onFocus: openMenu,
placeholder: 'Type to search',
});

return (
<div className={classes.container}>
{renderInput({
fullWidth: true,
classes,
label: "Assigned Rider",
InputLabelProps: getLabelProps({shrink: true}),
InputProps: {onBlur, onChange, onFocus, onSelect},
inputProps,
})}

<div {...getMenuProps()}>
{isOpen ? (
<Paper className={classes.paper} square>
{getSuggestions(this.props.suggestions, inputValue, {showEmpty: true}).map((suggestion, index) =>
renderSuggestion({
suggestion,
index,
itemProps: getItemProps({item: suggestion.label}),
highlightedIndex,
selectedItem,
}),
)}
</Paper>
) : null}
</div>
</div>
);
}}
</Downshift>

通过 onSelect,我可以检索选择的值。我希望能够取回 key 。

function renderSuggestion(suggestionProps) {
const { suggestion, index, itemProps, highlightedIndex, selectedItem } = suggestionProps;
const isHighlighted = highlightedIndex === index;
const isSelected = (selectedItem || '').indexOf(suggestion.label) > -1;

return (
<MenuItem
{...itemProps}
key={suggestion.uuid}
value={suggestion.uuid}
selected={isHighlighted}
component="div"
style={{
fontWeight: isSelected ? 500 : 400,
}}
>
{suggestion.label}
</MenuItem>
);
}

这里我将 uuid 设置为每个选择的键。

我的最终目标是能够进行选择并检索 uuid 而不是值本身。

虽然我可以使用返回的值来匹配项目列表,但我想确保如果最终出现任何重复条目,也不会导致问题。

这里是我的组件完整代码的链接 - https://github.com/theocranmore/bloodbike/blob/master/react_app/src/components/UsersSelect.js#L143

谢谢!

最佳答案

我不知道为什么你需要一个 id,但对于我自己来说,获取对象本身就足够了。

<Autocomplete .....
onChange={(event, newValue) => {
console.log(newValue); //this will give you the selected value dictionary (source)
}}

关于javascript - 在 onSelect 时从 Material-ui 自动完成中检索条目的键,而不是值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58190710/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com