Nasıl Tepki de yuvalanmış JSON okumak için?

oy
0

Bir süre iyi bir cevap arıyordum ancak herhangi bulamadık. Ben bir JSON dosyası var ve bunu reaksiyon göster veri okumak istediğiniz yeri yüzden bu sorunu yaşıyorum.

JSON böyle biraz görünür:

{
cats: [
    {
        id: 1,
        name: Cat1,
        age: 3
    },
    {
        id: 2,
        name: Cat2,
        age: 2
    }
],
dogs: [
    {
        id: 3,
        name: Dog1,
        age: 5
    },
    {
        id: 4,
        name: Dog2,
        age: 2
    }
]
}

Bütün kediler ve köpekler ve onların tüm verileri böylece nasıl tepki duruma bu JSON okuyabilir ama bir kedi veya köpek olsaydı ben hemen anlarım?

Bu yüzden şu anda ben 2 farklı durum:

this.state = {
  cats: data.cats,
  dogs: data.dogs,
};

Ben bir liste halinde eşleştirmişlerdir ama ben ne olduklarını anlatmak için bir yol yoktur. Ne olduklarını tutmanın bir yolu var mı?

Ben mantıklı umut ...

Teşekkürler!

Oluştur 27/11/2018 saat 18:21
kaynak kullanıcı
Diğer dillerde...                            


4 cevaplar

oy
1

Ben soruyu anlıyorum ..

öğe onun türünü bilir nasıl?


Bunları yineleme, zaten gibileri bilirim.

this.state.dogs.map((dog, i) => {
  // I know this is dog
  return <Item key={i} {...dog} />;
})

this.state.cats.map((cat, i) => {
  // I know this is cat 
  return <Item key={i} {...cat} />;
})

bileşeni içinde? Ayrı bileşenleri kullanmak, o zaman hangi hangi biliyoruz.

this.state.dogs.map((dog, i) => {
  return <DogItem key={i} {...dog} />;
})

this.state.cats.map((cat, i) => {
  return <CatItem key={i} {...cat} />;
})

Eğer bileşeni yeniden musunuz? özelliği olarak türünü geçmek.

this.state.dogs.map((dog, i) => {
  return <Item key={i} type="dog" {...dog} />;
})

this.state.cats.map((cat, i) => {
  return <Item key={i} type="cat" {...cat} />;
})
Cevap 27/11/2018 saat 18:43
kaynak kullanıcı

oy
0
class Draw extends React.Component {
 static defaultProps {
 dogs: data.dogs,
 cats: data.cats
  }

 render(){
   const {dogs, cats} = this.props;
   return(<div>{dogs.map((value, index)=>value.id)}</div>)
  }
 }

value.id value.name veya istediğiniz herhangi bir iç içe html olabilir.

Cevap 27/11/2018 saat 18:35
kaynak kullanıcı

oy
0

Tam itiraf sorunuzu anlamıyorum. =) Sen devlet özelliklerinde kedi veya köpek türü var. Yani eğer köpek dizisi üzerinde örnek haritası için bunu Your'e haritalama yoluyla köpekler olduğunu biliyoruz. Ne demek sen bir kedi veya bir köpek sadece şöyle örneğin listenizde ekleyebilirsiniz eğer nasılsa listenizde istediğiniz ise:

this.state.dogs.map( (dog, i) => return <li key={i}>Dog: {dog.name}</li>)
Cevap 27/11/2018 saat 18:32
kaynak kullanıcı

oy
0

Kullanabilirsiniz

this.setState({
cats: data.cats,
dogs: data.dogs
})
Cevap 27/11/2018 saat 18:28
kaynak kullanıcı

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more