Реагировать на цикл через вызовы API - PullRequest
1 голос
/ 30 марта 2020

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

import React from 'react';
import "./Home.css";
import Icon from "./../Images/icon.png";
import Popup from "./Popup";

export default class GetFullName extends React.Component {

    constructor(props) {
        super(props);
        this.state = { showPopup: false };
    }

    togglePopup() {
        this.setState({
            showPopup: !this.state.showPopup
        });
    }

    state = {
        firstName: null,
        lastName: null,
        fullName: null,
        jobRole: null,
        about: null,

    }

    async componentDidMount() {
        const url = "https://localhost:44362/api/peopleprofiles";
        const response = await fetch(url);
        const data = await response.json();
        this.setState({ firstName: data[0].firstName })
        this.setState({ lastName: data[0].lastName })
        this.setState({ fullName: this.state.firstName + " " + this.state.lastName })
        this.setState({ jobRole: data[0].roleType.jobRole })
        this.setState({ about: data[0].about })
        this.setState({ image: window.btoa(data[0].iconNavigation.image) })
        this.setState({ image: "data:image/jpeg;charset=utf-8;base64, " + window.btoa(data[0].iconNavigation.image) + "" })
        console.log(data)
    }


    render() {
        return (
                <div className="container PeopleProfile">
                    <div className="row flex-grow">
                        <div className="col-2">
                        <img src={this.state.image} className="Icon" alt="ProfileIcon" />
                        //<img src={Icon} className="Icon" alt="ProfileIcon" />
                        </div>  
                        <div className="col-10">
                            <div className="row PeopleProfile">
                                <p id="ppName"><div>{this.state.fullName}</div></p>
                            </div>
                            <div className="row ppjobTitle">
                                <p id="ppjobTitle"><div>{this.state.jobRole}</div></p>
                            </div>
                            <div className="row PeopleProfile">
                            <p id="ppDescription"><div>{this.state.about}</div></p>
                            </div>
                                <div className="row PeopleProfile">
                                    <div className="ppButton">

                                <input type="submit" onClick={this.togglePopup.bind(this)} value="Full profile" id="PeopleProfileBTN" class="align-self-end btn btn-lg btn-block"></input>
                                    </div>
                                    <div>
                                        {this.state.showPopup ?
                                        <Popup
                                            text='Click "Close Button" to hide popup'
                                            closePopup={this.togglePopup.bind(this)}
                                            />
                                            : null
                                         }
                                    </div>
                                </div>
                        </div>
                    </div>
                </div>
        );
    }

}

Это мой текущий код. Я пытался использовать карту реакции, но не могу заставить ее работать. Кто-нибудь знает, как я могу правильно реализовать карту реагирования в этом проекте или лучший способ решить эту проблему?

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