Javascript 如何在单击时替换当前下拉项
我有一个包含一些项目的下拉列表,当我单击下拉列表上的按钮时,我正在尝试替换它们。我试图在单击时将Javascript 如何在单击时替换当前下拉项,javascript,arrays,reactjs,Javascript,Arrays,Reactjs,我有一个包含一些项目的下拉列表,当我单击下拉列表上的按钮时,我正在尝试替换它们。我试图在单击时将menuItems替换为newMenuItems。这是我的密码 const [data, setData] = React.useState(menuItems); const menuItems = [ { value: 'pdf', label: t('dashboardAsPDF'), group: 'image' }, { value: 'png', label: t('da
menuItems
替换为newMenuItems
。这是我的密码
const [data, setData] = React.useState(menuItems);
const menuItems = [
{ value: 'pdf', label: t('dashboardAsPDF'), group: 'image' },
{ value: 'png', label: t('dashboardAsPNG'), group: 'image' },
{ value: 'ecsv', label: t('exportSelection'), group: 'csv' },
];
const newMenuItems = [
{ value: 'csv', label: t('facebookCSV'), group: 'csv' },
{ value: 'gcsv', label: t('googleAdsCSV'), group: 'csv' },
];
const handleCSV = () => {
//replace menu items logic goes here
};
return (
<div key={'ExportMenu'}>
{data.map((d: Item, index: number) => (
<StyledMenuItem value={d.value} selected={d.value === value} key={index}>
{d.value.toString().length > 1 ? (
<Label onClick={d.value === 'ecsv' ? () => handleCSV() : () => isCheckboxChecked(d.value.toString())}>{d.label}</Label>
) : (
<Label key={'label'}>{d.label}</Label>
)}
</StyledMenuItem>
))}
</div>
const[data,setData]=React.useState(menuItems);
常量菜单项=[
{value:'pdf',标签:t('dashboardAsPDF'),组:'image'},
{值:'png',标签:t('dashboardAsPNG'),组:'image'},
{值:'ecsv',标签:t('exportSelection'),组:'csv'},
];
常数newMenuItems=[
{值:'csv',标签:t('facebookCSV'),组:'csv'},
{值:'gcsv',标签:t('googleAdsCSV'),组:'csv'},
];
常量handleCSV=()=>{
//替换菜单项逻辑如下
};
返回(
{data.map((d:Item,index:number)=>(
{d.value.toString()。长度>1(
handleCSV():()=>isCheckboxChecked(d.value.toString())}>{d.label}
) : (
{d.label}
)}
))}
因此,我试图将替换逻辑添加到
handleCSV
函数中,但我不确定如何执行此操作。请举个例子!您需要使用useState
中的第二个解构参数setData
,如下所示:
const handleCSV = () => {
setData(newMenuItems)
}
这将把
数据
从menuItems
更改为newMenuItems
,并将继续调用.map()
overnewMenuItems
因为它现在存储在数据中
我有点困惑,需要用newMenuItems
替换什么?menuItems
?或者其他什么?是的,对不起,我已经更新了问题好了,现在有点清楚了,数据。map
从哪里来?你从哪里得到>数据
from?因为我想这是呈现项目的方式?更新后的问题,数据是状态,默认情况下是菜单项。我发誓我已经尝试过这种方式,但我想问题出在其他方面。谢谢!