0

I have two onChange handlers in my next app, and i would like split this two onChange handlers split in to one. Problem is i really dont know how make right syntax in array selector

// Working solution with two handlers

  const ticketPriceInreaseHandler = (
    e: { target: HTMLInputElement },
    index: number,
    index2: number
  ) => {
    const items = action.ticketsOnWave;

    items[index].wave[index2].price = e.target.value;

    setAction({
      ...action,
      ticketsOnWave: [...items],
    });
  };

  const ticketPiecesInreaseHandler = (
    e: { target: HTMLInputElement },
    index: number,
    index2: number
  ) => {
    const items = action.ticketsOnWave;

    items[index].wave[index2].pieces = e.target.value;

    setAction({
      ...action,
      ticketsOnWave: [...items],
    });
  };

I try it make one just handler like down on example but i getting always errors..

  const oneHandler = (
    e: { target: HTMLInputElement },
    index: number,
    index2: number
  ) => {
    const items = action.ticketsOnWave;

   items[index].wave[index2].event.taget.name = e.target.value;   // Here is problem 

       setAction({
      ...action,
      ticketsOnWave: [...items],
    });
  };

or i try it

    const nameOfField = e.target.name 

    items[index].wave[index2].nameOfField = e.target.value;   

// here i getting new in object field instead of field name from const nameOfField

What is a right syntax for this ? Thanks

Radas
  • 19
  • 4
  • To use a variable as an object key you need to use `[]` just like in arrays, e.g. `items[index].wave[index2][e.target.name] = e.target.value;`. See [JavaScript set object key by variable](https://stackoverflow.com/questions/11508463/javascript-set-object-key-by-variable). – juliomalves Apr 27 '22 at 20:59

0 Answers0