1

I have these values ​​in the useState hook box constant

const [box, setBox] = useState(
  targetFarm.children.flatMap((item) =>
   item.children.map((v) => ({ placeId: v.placeId, productCode: v.productCode }))
        )
    )

box = [
{ placeId: 257, productCode: "INSECT3"}
{ placeId: 258, productCode: "INSECT3"}
{ placeId: 259, productCode: "INSECT5"}
{ placeId: 260, productCode: "INSECT5"}
]

I also have these values ​​in hi[0].

hi[0] = {
    children : [
        {placeId: 257, productCode: "INSECT3"},
        {placeId: 258, productCode: "INSECT3"},
    ]
}

What I want to do is change the productCode by using the setBox function only when the placeId of box and the placeId of hi[0].children match.

this is my code

   hi[0].children.map((v) => {

    box.map((item) => {
        if (v.placeId === item.placeId) {
            // data : "INSECT4"
            setBox({ productCode: data })
        }
    })
   })

But when I run my code, the value is entered strangely like below.

 box = [
    {
    placeId: 257,  productCode: "INSECT3"
    }
    ...
    productCode: "INSECT4"         << this is weird
  ]

expected answer

 box = [
    { placeId: 257, productCode: "INSECT4"}
    { placeId: 258, productCode: "INSECT4"}
   ]

How can i fix my code?

user19476497
  • 495
  • 1
  • 10

0 Answers0