Есть ли решение сделать только одну карту вместо нескольких? - PullRequest
0 голосов
/ 01 ноября 2019

Я пытаюсь отобразить некоторые данные в своем приложении, но когда я использую данные и пытаюсь отобразить, появляется несколько карт, но мне нужна только одна карта со всеми данными, которые я хочу

Iуже показывают данные, но не правильно

PokemonSpecies.js

import React from "react";
// import Loader from "./Loader";
import { Card, Col } from "react-bootstrap";

import { Container, Row } from "react-bootstrap";
import CardPokemon from "./containers/CardPokemon";


class PokemonSpecies extends React.Component {
  state = {
    data: [],
    dataStats: [],
    dataTypes: [],
    isLoading: false,

  };

  async componentDidMount() {
    const id = this.props.match.params.id;

    this.setState({ isLoading: true });
    try {
      const response = await fetch(`https://pokeapi.co/api/v2/pokemon/${id}`);
      const json = await response.json();
      this.setState({
        data:json,
        dataStats: json.stats,
        dataTypes: json.types,
        isLoading: false
      });
      console.log({ json });
    } catch (err) {
      console.log(err.msg);
      this.setState({ isLoading: false });
      throw err;
    }
  }

  render() {
    const {data,dataStats,dataTypes} = this.state;
    return (
      <div className="Pokemon">
        <Container>
          <Row>
            <Col lg="4"></Col>
            <Col lg="4">

              <CardPokemon data={data} dataStats={dataStats} dataTypes={dataTypes} />


            </Col>

            <Col lg="4"></Col>
          </Row>
          <Row></Row>
        </Container>
      </div>
    );
  }
}

export default PokemonSpecies;

CardPokemon.js

import React from 'react';

import DataSinglePokemon from './DataSinglePokemon'

const CardPokemon =({data,dataStats,dataTypes}) =>{

  return(

  <>
  {dataStats.map((info,index) =>(
            dataTypes.map((info2) =>(

<DataSinglePokemon 
id={data.id} 
name={data.name.toLowerCase().split(' ').map(letter => letter.charAt(0).toUpperCase() + letter.substring(1)).join(' ')}
height={data.height}
weight={data.weight}
{...info2}
type={info2.type.name.toLowerCase().split(' ').map(letter => letter.charAt(0).toUpperCase() + letter.substring(1)).join(' ')}

{...info}
base_stat={info.base_stat }
name_stat={info.stat.name}

  />
            ))

      ))}

</>
  );
}




export default CardPokemon



DataSinglePokemon.js

import React from "react";
import { Card, Col } from "react-bootstrap";
import "../../App.css";
const DataSinglePokemon = props => {

  const { 


    type,
    weight,
    name_stat, 
    base_stat,
    height,
    name, 
    id
  } = props;



  const urlImage = `https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/${id}.png?raw=true`;
  return (
    <>
      <Card >
                <Card.Header>{id}</Card.Header>

                <Card.Body className="mx-auto">
                  <Card.Title> {name} </Card.Title>
                  <Card.Text>
                    <img alt={name} src={urlImage} />
                    <br></br>
                    <span>Types : {type} </span> 
                    <br></br>
                    Taille : {height} 
                    <br></br>
                    Poid : {weight} 

<br></br>

                  Statistiques : 

                  <li > {name_stat} : {base_stat} </li>
                  </Card.Text>
                </Card.Body>
              </Card>
              </>

  );
};

export default DataSinglePokemon;

Iиметь этот результат с несколькими картами: https://imgur.com/no4z6Cn

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...