【发布时间】:2019-03-01 08:12:12
【问题描述】:
我正在尝试使用 React-Select 选项创建自定义选择。我希望我的搜索不在控制框中,而是在菜单中。 我试过这个:
import React from "react";
import Select, { components } from "react-select";
import { colourOptions, groupedOptions } from "./docs/data";
const MenuList = props => {
return (
<components.MenuList {...props}>
<components.Input {...props} />;
{props.selectProps.inputValue.length > 1 ? props.children : ""}
</components.MenuList>
);
};
export default () => (
<Select
defaultValue={colourOptions[1]}
options={groupedOptions}
components={{ MenuList }}
/>
);
问题是我收到一个错误提示
Uncaught Invariant Violation: input is a void element tag and must neither have children nor use dangerouslySetInnerHTML
我猜反应选择的components.Input 是在input 标签内渲染另一个div 或类似的东西。
有没有人知道如何做到这一点?
【问题讨论】:
-
看来您必须使用
<div>标记来包装您的 Select 组件输入。 -
不,不起作用 - codesandbox.io/s/xl66k0yr5p
-
在调用 MenuList 时删除 Select 组件属性上的一个大括号:
components={ MenuList }:) 示例:codesandbox.io/s/z2rkr0pmj3 -
只会呈现默认菜单而不是我的自定义菜单..
-
我想我明白你想要做什么。像我概述的in this SO question?我和其他人都有过这个FR in the Issue Tracker for a while now。您必须首先意识到
Input组件不是“输入”。
标签: reactjs react-select