当我们使用 React 从列表中单击第一个项目时打开模式

Open the Modal when we click on First Item from the list using React

我的值列表很少,我正在遍历地图以显示数据,现在我正在获取数据列表,但在这里我需要在单击列表的第一项时打开模式。 所以我在这里遍历 Map 以显示数据,现在我如何为列表的第一项编写点击事件,任何人都可以帮助我,在此先感谢

const DisplayData:React.FC = () => {
    const data = inputs;
   
     const handlechange =(index:any) =>{
           const newData = {...data};
           //console.log(newData.purpose);
           newData.purpose[index].value = 'Credit Card Payment'

     }

  return (
    <div className='Data' >
        {data.purpose.map((items,index) =>{
           // console.log(items.value);
            return (<ul>
                <li key={index} onClick={() =>{handlechange(index)}} >{items.value}</li>
            </ul>
        )})}
    </div>
  )
}
export default DisplayData;

export const inputs = {
    "purpose": [
         {
            "locale": "EN",
             "code": "CRP",
             "value": "Credit Card Payment"
         },
         {
            "locale": "EN",
             "code": "SRP",
             "value": "Educational Support"
         },
         {
            "locale": "EN",
             "code": "KRP",
             "value": "Family Support (Workers uninons)"
         },
         {
            "locale": "EN",
             "code": "YRP",
             "value": "Credit Card Payment,Family Support (Workers uninons)"
         },
         {
            "locale": "EN",
             "code": "CRP",
             "value": "Family Support (Workers uninons),Credit Card Payment"
         },
         {
            "locale": "EN",
             "code": "CRP",
             "value": "Credit Card Payment1234567890asdfghjkl"
         },
         {
            "locale": "EN",
             "code": "CRP",
             "value": "Family Support (Workers uninons)1234567890sdfghjkl"
         },
         {
            "locale": "EN",
             "code": "CRP",
             "value": "Educational Supportertyh456789sdfg"
         },
    ]
}

您需要一个模态组件来显示 selected 数据。 如果 select 选项仅在第一项上,您可以根据索引添加条件

     const DisplayData: React.FC = () => {
    const [selectedItem, setSelectedItem] = React.useState();

    const [openModal, setModalOpen] = useState(false);

    const data = inputs;

    const handleSelect = (selectedItem) => {
        setSelectedItem(item);
        setModalOpen(true);
    };
    const handleOnCloseModal = () => {
        setModalOpen(false);
        setSelectedItem(undefined);
    };

    return (
        <>
            <div className="Data">
                <ul>
                    {data.purpose?.map((item, index) =>
                        index === 0 ? (
                            <li key={index} onClick={() => handleSelect(item)}>
                                {item?.value}
                            </li>
                        ) : (
                            <li key={index}>{item?.value}</li>
                        )
                    )}
                </ul>
            </div>
            {/* modal component */}
            <Modal isOpen={openModal} onClose={handleOnCloseModal}>
                <div>{selectedItem?.value}</div>
            </Modal>
        </>
    );
};
export default DisplayData;

export const inputs = {
    purpose: [
        {
            locale: 'EN',
            code: 'CRP',
            value: 'Credit Card Payment',
        },
        {
            locale: 'EN',
            code: 'SRP',
            value: 'Educational Support',
        },
        {
            locale: 'EN',
            code: 'KRP',
            value: 'Family Support (Workers uninons)',
        },
        {
            locale: 'EN',
            code: 'YRP',
            value: 'Credit Card Payment,Family Support (Workers uninons)',
        },
        {
            locale: 'EN',
            code: 'CRP',
            value: 'Family Support (Workers uninons),Credit Card Payment',
        },
        {
            locale: 'EN',
            code: 'CRP',
            value: 'Credit Card Payment1234567890asdfghjkl',
        },
        {
            locale: 'EN',
            code: 'CRP',
            value: 'Family Support (Workers uninons)1234567890sdfghjkl',
        },
        {
            locale: 'EN',
            code: 'CRP',
            value: 'Educational Supportertyh456789sdfg',
        },
    ],
};