我遵循了 downshift-examples 中的基本用法,但是将要显示在下拉列表中的项目数组从 starwars(字符串数组)更改为 shared.js 中的对象数组(例如 Id: 1,Description:'item') .
我还记录了一些东西并将它们内联在下面的代码中,前面加上“==>”。
当我启动应用程序时,会出现下拉菜单。但是,当我单击下拉列表右侧的下拉箭头时,会显示以下错误。
未捕获的错误:对象作为 React 子项无效(找到:带有键 {Id,Description} 的对象)。如果您打算渲染一组子项,请改用数组。
关于我做错了什么的任何想法?
import { items, menuStyles, comboboxStyles, itemToString } from "../../shared";
function DropdownCombobox() {
const [inputItems, setInputItems] = useState(items);
console.log(items); // ==> Array(127)
console.log(itemToString); // ==> i => i ? i.Description : ""
console.log(items[1]); // ==> {Id: 38, Description: "001 - RAB"}
const {
isOpen,
getToggleButtonProps,
getLabelProps,
getMenuProps,
getInputProps,
getComboboxProps,
highlightedIndex,
getItemProps,
} = useCombobox({
items: inputItems,
itemToString,
onInputValueChange: ({ inputValue }) => {
setInputItems(
items.filter((item) =>
itemToString(item).toLowerCase().startsWith(inputValue.toLowerCase())
)
);
},
});```