javascript - 如果我在 react-select 中使用 optionsRenderer,如何使用 valueComponent 道具呈现所选项目
问题描述
假设我有带有以下道具的 react-select 组件。我正在使用哈巴狗语法。
什么有效我的下拉列表正确显示了每个选项,所有选项都使用optionsRenderer
道具自定义呈现...
我得到了什么(如预期的那样)
但是我得到的结果是输入值只是我在我的option.label
字段中引用的文本。在第一个选项中,Custom
是我的标签键。
我想要达到的目标
使用valueComponent
来显示选项渲染器在选项下拉列表中显示的完全相同的 HTML。
像这样,样式当然可以改进:)
...
Select(
options=this.getOptions()
optionRenderer=customOption
valueComponent=customOption // this doesn't work
valueKey="id"
)
下面的函数是optionRenderer
props 所期望的,并迭代提供的选项。
const customOption = (option) => pug`
div
strong #{option.label}
p #{option.renderMethod}
div
strong $#{option.otherHTMLData}
`
但valueComponent
只需要 1 个静态组件。因此任何功能都像() => <span>Will show this</span>
如何使用 获取选择用作输入值的选项valueComponent
?
解决方案
显示的标签ValueContainer
取决于isMutli
。如果isMulti
为 false,则通过覆盖SingleValue
组件来控制此显示。如果isMulti
为真,则通过覆盖MultiValue
组件(更具体地说,它是MultiValueLabel
组件)来控制此显示。
有关一些简单示例,请参阅组件文档。
推荐阅读
- angular - 如何在 ngx-modal 中以编程方式关闭模式对话框
- google-apps-script - 尝试检查单元格的值并将其与另一个值进行比较以查看它是否匹配(Google 脚本)
- java - Hibernate DB记录更新,代码运行但数据库未更新
- jquery - 我的自定义 jquery 滑块问题
- python - jwt.encode 失败并显示“'bytes' 类型的对象不是 JSON 可序列化的”
- php - Woocommerce 商店的图像被粉碎和扭曲?
- c++ - 使用 ITK 操作 Nifti 图像
- ios - iOS 11.3 和 Xcode 9.3 导致 Obj-C 应用程序启动失败
- angular - 扩展第三方接口
- javascript - 修改付款行 pos odoo 8