Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/440.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在“选项”下拉列表中传递额外的键,并从onChange道具中获取它们?_Javascript_Reactjs_Typescript_React Select - Fatal编程技术网

Javascript 如何在“选项”下拉列表中传递额外的键,并从onChange道具中获取它们?

Javascript 如何在“选项”下拉列表中传递额外的键,并从onChange道具中获取它们?,javascript,reactjs,typescript,react-select,Javascript,Reactjs,Typescript,React Select,我正在使用这个下拉库 导出常量货币=[ {值:'USD',标签:'USD',货币符号:“$”}, {值:'INR',标签:'₹ INR',货币符号:₹" }, {值:'CAD',标签:'C$CAD',货币符号:“C$”} ] console.log(newSelectedOption)}//获取一个只有两个键的对象:“label”和“value”。第三个键“currencySign”不存在! /> 有没有办法在onChange对象中获得“currencySign” 谢谢 2020年10月13日

我正在使用这个下拉库

导出常量货币=[
{值:'USD',标签:'USD',货币符号:“$”},
{值:'INR',标签:'₹ INR',货币符号:₹" },
{值:'CAD',标签:'C$CAD',货币符号:“C$”}
]
console.log(newSelectedOption)}//获取一个只有两个键的对象:“label”和“value”。第三个键“currencySign”不存在!
/>
有没有办法在onChange对象中获得“currencySign”

谢谢


2020年10月13日更新:react下拉列表库似乎没有提供此功能。

react下拉列表库似乎没有提供此功能,但您可以在
onChange
功能中执行以下操作:

const selectedCurrency = currencies.find({value, label} => value === newSelectedOption.value && label === newSelectedOption.label)

然后您可以检索
currencySign
属性

,如果您可以访问处理程序中的选项数组,则可以编写一个助手函数

Dropdown 
    options={currencies}
    onChange={onChange}
/>

onChange(selected){
  var itemWithCurrency = this.findSelected(selected.value,  this.currencies)
}

findSelected(value, items){
  return items.find(item => item.value === value)
}

我想到了这个解决方案,但不幸的是,它会使代码复杂化。y onChange提供的道具在很多地方都有使用/:谢谢你的回答!你也可以为下拉列表创建一个包装器组件,然后添加上面的逻辑。让包装器组件将完整的对象传递给onChange处理程序。