मैंने अपनी परियोजना के लिए एक घटक बनाया है और किसी कारण से जब भी डेटा को सरणी में धक्का देते समय डेटा अपडेट नहीं हो रहा है। यह केवल एक बार धक्का देता है और यह केवल अंतिम वस्तु करता है। यह लूप को नहीं रोकता है या अंत तक नहीं जाता है, इसलिए मुझे कोई सुराग नहीं है कि इसका क्या कारण है। प्रारूप सही है लेकिन डेटा केवल सरणी में धक्का नहीं देता है।

यह मेरा घटक है https://codesandbox.io/s/stoic-bartik-bh9rc

class Organization extends Component {
  render () {  
   const team = (props) => {
      let arr = [];

      props.props.map((res, key) => {
        let teamName = res.team.replace(/\s+/g, '_').toLowerCase();
        if (Object.keys(arr) !== teamName) {
          arr[teamName] = {};
          arr[teamName]['section_title'] = res.team;
        }
        arr[teamName]['fields'] = res
      });

      return arr;
    }

    return (
      <div className="press-wrapper">
        <Cards data={team(this.props)} multiple={true} />
      </div>
    )
  }
}

यह वर्तमान आउटपुट है

{
  co_founder: {
    section_title: 'Co Founder',
    fields: [
      { title: "Cl Tre, Co-Founder & COO", team: "Co Founder" },
    ]
  }
},
{
  team_member: {
    section_title: 'Team Member',
    fields: [
      { title: "Team Member", team: "Team Member" },
    ]
  }
},
{
  advisor: {
    section_title: 'Advisor',
    fields: [
      { title: "Team Member", team: "Advisor" },
    ]
  }
}

यह मेरा वांछित आउटपुट है

   {
      co_founder: {
        section_title: 'Co Founder',
        fields: [
          { title: "Ja Ris, Co-Founder & CEO", team: "Co Founder" },
          { title: "Cl Tre, Co-Founder & COO", team: "Co Founder" },
        ]
      }
    },
    {
      team_member: {
        section_title: 'Team Member',
        fields: [
          { title: "Team Member", team: "Team Member" },
          { title: "Team Member", team: "Team Member" },
          { title: "Team Member", team: "Team Member" },
          { title: "Team Member", team: "Team Member" },
          { title: "Team Member", team: "Team Member" },
          { title: "Team Member", team: "Team Member" },
        ]
      }
    },
    {
      advisor: {
        section_title: 'Advisor',
        fields: [
          { title: "Team Member", team: "Advisor" },
          { title: "Team Member", team: "Advisor" },
          { title: "Team Member", team: "Advisor" },
          { title: "Team Member", team: "Advisor" },
          { title: "Team Member", team: "Advisor" },
          { title: "Team Member", team: "Advisor" },
        ]
      }
    },
1
Jeremy Love 30 मार्च 2020, 03:36

1 उत्तर

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

props के आधार पर कस्टम ऑब्जेक्ट बनाने के लिए रिडक्शन का उपयोग करने का प्रयास करें। ऐसा कुछ आपको वांछित आउटपुट प्राप्त करने में मदद करनी चाहिए:

props.reduce((acc, curr) => {
  let teamName = curr.team.replace(/\s+/g, '_').toLowerCase();
  if (!acc[teamName]) {
    acc[teamName] = {};
    acc[teamName].section_title = curr.team;
    acc[teamName].fields = [curr.title];
  }
  else {
    acc[teamName].fields.push(curr.title);
  }
  return acc;
}, {})
1
Jayce444 30 मार्च 2020, 01:23