单击它后如何获取组件的ID - React

How to get component's id after clicking on it - react

我在 rides-context.js 中有一组对象。在 RidesList.js 中,我映射数组的数据并将其传递给组件以便在屏幕上显示它。

const RidesList = (props) => {
  const rideCtx = useContext(RidesContext);

  const deleteHandler= () => {
    rideCtx.onDelete(??)
  }
 
  return (
    <ul className={classes.container}>
      {rideCtx.ridesList.map((ride) => (
        <Ride hour={ride.hour} name={ride.name} key={ride.key} id={ride.id} onDelete={deleteHandler}/>
      ))}
    </ul>
  );
};

现在我想在点击某个组件后将其删除。为此,我必须将组件的 ID 传递给位于 rides-context.js 中的函数。如何获取被点击元素的id?(onDelete在另一个文件中连接到onClick)

你在这里想要的是使用一个闭包,并在可用的地方将 ride 的 id 传递给 deleteHandler。为此,您可以传递一个匿名函数作为 onDelete 道具,它将用 ride.id 调用,如下所示:

const RidesList = (props) => {
  const rideCtx = useContext(RidesContext);

  const deleteHanlder = (id) => {
    rideCtx.onDelete(id)
  }
 
  return (
    <ul className={classes.container}>
      {rideCtx.ridesList.map((ride) => (
        <Ride hour={ride.hour} name={ride.name} key={ride.key} id={ride.id} onDelete={() => deleteHandler(ride.id)}/>
      ))}
    </ul>
  );
};