0

So I am receiving an array of Objects, each one has a "attributes.seller" property. Then I am using a forEach( ) to go over each one and create a new object with only the properties I need and pushing them to a new array, including the Seller property. The issue is that on ALL the received objects the "Seller" property exists and its a string.

However, after constructing the new object most of the seller properties show as "seller: {$$typeof: Symbol(react.element), type: 'button', key: null, ref: null, props: {…}, …}"

BUT not all of them, some do show correctly. So IDK whatI am doing wrong if my code was working before and it still works but not for all the items.

This is the object array i am receiving

This is where I itirate over each object:

createdResults.forEach((item) => {
      console.log(item.attributes.seller);
      const offer = {
        itemId: Number(item.attributes.itemId),
        token: item.attributes.token,
        amount: item.attributes.amount,
        price: item.attributes.price,
        seller: item.attributes.seller,
      };
      createdArr.push(offer);

Even when I log out to the console items.attributes.itemId, it shows EVERY SINGLE property just fine.

The issue is after I have pushed each new object into the new array that the "seller" property of it shows like this: New Object

 const getEvents = async () => {
    let createdArr = [];
    
    const created = new Moralis.Query("SaleCreateddd");
    

    const createdResults = await created.find();
    
    

    createdResults.map((item) => {
      // Until here, the seller string shows up correctly for each item
      console.log(item.attributes.seller);
      const offer = {
        itemId: Number(item.attributes.itemId),
        token: item.attributes.token,
        amount: item.attributes.amount,
        price: item.attributes.price,
        seller: item.attributes.seller,
      };
      // Its after the forEach loop that the seller property gets distorted

      createdArr.push(offer);
  • 1
    Show us the code where the `createdArr` is used. It looks like its used in the `render` and the seller field gets map to a react element. – Anthony C Jun 18 '22 at 01:14
  • Updated. I cant use the array withou the seller property. However the issue lies somewhere in that forEach loop. Before i loop over it, all the seller info is there. After the loop, most show up as $$typeof: Symbol(react.element) – Mandingo San Jun 18 '22 at 01:23
  • @MandingoSan The problem is unlikely in the `forEach` loop. Rather, some other code is *modifying* the objects you created just fine, *after* the loop - [before you are inspecting the logged array](https://stackoverflow.com/q/4057440/1048572). Please show us the complete code, especially the parts where you use React JSX syntax (` – Bergi Jun 18 '22 at 01:33

1 Answers1

0

itemId is already an integer remove Number()

then you are forgetting .seller

createdResults.forEach((item) => {
      console.log(item.attributes.seller);
      const offer = {
        itemId: item.attributes.seller.Number(itemId),
        token: item.attributes.seller.token,
        amount: item.attributes.seller.amount,
        price: item.attributes.seller.price,
        seller: item.attributes.seller.seller,
      };
      createdArr.push(offer);```
muyah
  • 176
  • 7