我正在开发多选语义UI下拉列表,并希望将所选选项的值和文本传递给动作创建者。
下拉列表的标记:
<Dropdown
placeholder='Campaign Exposed To'
fluid
search
selection
multiple
options={this.state.campaigns}
onChange={this.exposedCampaignOnChange}
/>
onChange处理程序如下所示:
exposedCampaignOnChange = (e, {value}) => {
e.persist(); // access event properties in asynchronously
const text = e.target.textContent;
const currentValue = value[value.length-1];
// manipulate value array to include text too
value[value.length - 1] = {text: text, value: currentValue};
this.props.campaignExposedSelected(value);
};
这会将value数组转换为以下格式的对象集合:{text: test 1, value: 4353234}
这就是我想要的。
但是,因为我已将值从数组数组更改为对象数组,所以下拉列表选项会显示错误行为 - 它不会在字段中显示所选选项。 / p>
作为替代方案,为避免操作值数组,我考虑将选项文本添加到其value属性,如3442332___text
(因此下拉选项将以此格式提供一组值)。在这条线上,我将解析我需要的任何信息。我觉得这不是很优雅,所以不追求它。
感谢任何有关如何在不破坏下拉列表的情况下改变Sementic UI下拉值数组的帮助。