मैं इस तरह की सरणी की अनुक्रमणिका भेजकर "हैंडलक्लिक" को कॉल करने का प्रयास कर रहा हूं:

{citas.map((cita, i) => (
    <tr className='clickable-row' onClick={handleClick.bind(i)} >
         <td>{cita.CheckIn}</td>
         <td>{cita.CheckOut}</td>
         <td>{cita.Precio}</td>
         <td>{cita.Servicio}</td>
    </tr>
 ))}

और यह हैंडलक्लिक विधि है:

const handleClick = (i) => {
    console.log(i)
    history.push("/citasDetalladas/" + ids[i]);
}

समस्या यह है कि "i" वह नहीं है जो (सरणी अनुक्रमणिका) माना जाता है, क्योंकि यह इसे प्रिंट करता है: यहां छवि विवरण दर्ज करें

1
David Díaz 7 जुलाई 2020, 22:07

2 जवाब

सबसे बढ़िया उत्तर

bind विधि का पहला तर्क this मान है। फ़ंक्शन को दिया गया पहला तर्क दूसरा है:

onClick={handleClick.bind(null, i)}

आप इसके बजाय तीर फ़ंक्शन का उपयोग करके अपना नया फ़ंक्शन भी बना सकते हैं:

onClick={() => handleClick(i)}
2
Quentin 7 जुलाई 2020, 22:16

ऑनक्लिक होना चाहिए:

onClick={() => handleClick(i)}

आशा है कि यह आपकी मदद करता है।

-1
Luis Paulo Pinto 7 जुलाई 2020, 22:41