Css React引导选择选项内的标志呈现为[object,object]

Css React引导选择选项内的标志呈现为[object,object],css,reactjs,html-select,react-bootstrap,Css,Reactjs,Html Select,React Bootstrap,我想在React引导选择选项中显示标志图标。我尝试了基于CSS和基于React的库来实现这一点,在每种情况下,我只得到[object object] 我已尝试使用https://github.com/lipis/flag-icon-cssCSS库 <Form.Control as="select"> <option><span className="flag-icon flag-icon-gr"></span></opti

我想在React引导选择选项中显示标志图标。我尝试了基于CSS和基于React的库来实现这一点,在每种情况下,我只得到
[object object]

我已尝试使用
https://github.com/lipis/flag-icon-css
CSS库

<Form.Control as="select">
         <option><span className="flag-icon flag-icon-gr"></span></option>
</Form.Control>

这给了我一个警告和同样的东西

Warning: Only strings and numbers are supported as <option> children.
警告:仅支持将字符串和数字作为子项。
我还尝试使用相同库的React包装器


这不会产生警告,但也不会产生结果


是否有人知道如何在选项中获取字符串或数字以外的内容,或者以其他方式包含图标?

是否关闭标记

 <Form.Control as="select">

你要关上标签吗

 <Form.Control as="select">

选项HTML标记只接受文本,它不能接受任何其他HTML,它将剥离它。您可以通过以下方式检查此问题并阅读评论:

我不认为这完全是一种倒退。这有点棘手 地区它从未被有意支持过。它意外地工作了 初始装载,但在更新时崩溃()。修复碰撞 更为重要,因此我们将其固定为文本内容 (应该是这样的)。不幸的是,这意味着要设置自定义 中间的组件不被支持。这与我们的想法是一致的 textarea和类似的元素可以工作

我认为最好是显示无效的输出,并警告一些事情 这会在更新时中断,而不是让人们使用它只是为了发现它 生产崩溃。但我能理解为什么应该这样做 自定义组件返回字符串时支持。不幸的是我 不知道如何以既能解决更新问题的方式修复它 崩溃并支持纯文本内容。我认为现在这是合理的 也就是说,将自定义组件放到中并不真正起作用 (并且从未正确工作过),并要求您手动提供 用绳子拴住它

或者,您可以使用引导创建一个下拉按钮,其中包含使用以下代码的国家/地区列表:

App.js
。。。
从“反应引导/下拉”导入下拉列表;
从“./FlagIcon.js”导入FlagIcon
函数App(){
常量[国家]=使用状态([
{代码:'gr',标题:'Greece'},
{代码:“gb”,标题:“联合王国”},
{代码:“美国”,标题:“美国”}
]);
const[toggleContents,setToggleContents]=useState(“选择一个国家”);
const[selectedCountry,setSelectedCountry]=useState();
返回(
{
const{code,title}=countries.find({code}=>eventKey==code);
设置所选国家/地区(eventKey);
setToggleContents({title});
}}
>
{toggleContents}
{countries.map({code,title})=>(
{title}
))}
);
}
FlagIcon.js
从“React”导入React;
从“react flag icon css”导入FlagIconFactory;
//const FlagIcon=FlagIconFactory(React);
//如果未使用css模块,请编写以下内容:
const FlagIcon=FlagIconFactory(React,{useCssModules:false})
导出默认标志图标;
您将获得如下下拉按钮:


您还可以检查此工作堆栈Blitz:

选项HTML标记仅接受文本,它不能接受任何其他HTML,它将剥离它。您可以通过以下方式检查此问题并阅读评论:

我不认为这完全是一种倒退。这有点棘手 地区它从未被有意支持过。它意外地工作了 初始装载,但在更新时崩溃()。修复碰撞 更为重要,因此我们将其固定为文本内容 (应该是这样的)。不幸的是,这意味着要设置自定义 中间的组件不被支持。这与我们的想法是一致的 textarea和类似的元素可以工作

我认为最好是显示无效的输出,并警告一些事情 这会在更新时中断,而不是让人们使用它只是为了发现它 生产崩溃。但我能理解为什么应该这样做 自定义组件返回字符串时支持。不幸的是我 不知道如何以既能解决更新问题的方式修复它 崩溃并支持纯文本内容。我认为现在这是合理的 也就是说,将自定义组件放到中并不真正起作用 (并且从未正确工作过),并要求您手动提供 用绳子拴住它

或者,您可以使用引导创建一个下拉按钮,其中包含使用以下代码的国家/地区列表:

App.js
。。。
从“反应引导/下拉”导入下拉列表;
从“./FlagIcon.js”导入FlagIcon
函数App(){
常量[国家]=使用状态([
{代码:'gr',标题:'Greece'},
{代码:“gb”,标题:“联合王国”},
{代码:“美国”,标题:“美国”}
]);
const[toggleContents,setToggleContents]=useState(“选择一个国家”);
const[selectedCountry,setSelectedCountry]=useState();
返回(
{
const{code,title}=countries.find({code}=>eventKey==code);
设置所选国家/地区(eventKey);
setToggleContents({title});
}}
>
{toggleContents}
{countries.map({code,title})=>(
{title}
))}
);
}
FlagIcon.js
从“React”导入React;
从“react flag icon css”导入FlagIconFactory;
//const FlagIcon=FlagIconFactory(React);
//如果未使用css模块,请编写以下内容:
const FlagIcon=FlagIconFactory(React,{useCssModules:false})
导出默认标志图标;
您将获得如下下拉按钮:

console.log(""+{})