axios를 사용할 때 자바 스크립트에서 무한 루프를 중지하는 방법은 무엇입니까?

페이지 COW

이미지를 생성하기 위해 항목 배열을 매핑하고 있지만 코드를 무한 루프로 보낼 때마다. 내 코드는 다음과 같습니다.

다음은 매핑 코드입니다.

let mySrc = this.state.imageUrl;

{myImages.map(image => {
       this.getSrc(userId, image.id); 

       return(
       <img src={mySrc}/>)
    })}

이것은 "getSrc"함수입니다.

getSrc = async (userId, image) => {
    axios
      .get(`http://mysiteeee.com/api/getimage/${userId}/photo/${image}`, {
           auth: {
              username: 'username',
              password: 'password'
              },
              responseType: 'blob'
            })
      .then(res => {
          let myUrl = URL.createObjectURL(res.data)
          console.log(myUrl)
          this.setState({
              imageUrl: myUrl
              })
      })
      .catch(err => console.log(err))
    } 

페이지에 갈 때마다 모든 이미지 URL / 이미지를 계속해서 계속 섞습니다. 이미지 URL / 이미지를 한 번만 표시하려면 어떻게합니까? 이미지를 무한대로 셔플하는 것을 어떻게 중지합니까?

다음은 전체 구성 요소의 코드입니다.

import React from 'react';
import axios from 'axios';

import HeaderTwo from './HeaderTwo';


class FullDescription extends React.Component {
    constructor(props) {
        super(props);

        this.state = {
            eventInfo: [],
            imageUrl: [],
            clicked: false,
        }
    }

    componentDidMount = () => {
        window.scrollTo(0,0);

        this.props.state.images.map(image => 
            this.getSrc(this.props.state.id, image.id))

        // this.getSrc(this.props.state.id, this.props.state.images[1].id)
    }

    changeClicked = (userId) => {
        if(this.state.clicked === false){
            this.setState({
                clicked: true
            }) 
        } else {
            this.setState({
                clicked: false
            })
        }
    }

    getSrc = async (userId, image) => {
        axios
            .get(`http://http://mysiteeee.com/api/getimage/${userId}/photo/${image}`, {
                auth: {
                    username: 'username',
                    password: 'password'
                    },
                    responseType: 'blob'
            })
            .then(res => {
                let myUrl = URL.createObjectURL(res.data)
                this.state.imageUrl.push(myUrl)

                // this.setState({
                //     imageUrl: myUrl
                //     })
            })
            .catch(err => console.log(err))
    } 

    render() {
        let item = this.props.state;
        let date = new Date(item.date).toDateString();
        let time = new Date(item.date).toLocaleTimeString();
        let userId = this.props.state.id;
        let myImages = this.state.imageUrl;
        let checkMark = <button className='attend-button' onClick={() => this.changeClicked(userId)}>Attend Event</button>;

        console.log(myImages)

        if(this.state.clicked === true){
            checkMark = <button className='attend-button' onClick={() => this.changeClicked(userId)}>&#x2713; Attend Event</button>
        } else {
            checkMark = <button className='attend-button' onClick={() => this.changeClicked(userId)}>Attend Event</button>
        }

        return(
            <div>
                <HeaderTwo/>
                <body id="full-description-page">
                <div className='images-section'>
                    {myImages.map(mySrc => <img src={mySrc}/>)}
                </div>
                    <div id='heading-strip'>
                        <img src={myImages} className='heading-image'/>
                        <div className='heading-info'>
                            <p className='date'>{date}<br/>{time}</p>
                            <p className='name'>{item.name}</p>
                            <p className='location'><b>Location:</b> <br/>{item.location.name}, {item.location.address}, {item.location.city}, {item.location.state}</p>
                            <div className='button-area'>
                                    {checkMark}
                                </div>
                        </div>
                    </div>

                    <br/>
                    <p className='description'><b>Description:</b> {item.description}</p>


                    <br/><br/><br/><br/>
                    <p className='comments-header'><b>Comments:</b></p>
                    <div className='comments-section'>
                        {item.comments.map(comment =>
                            <div className='comments'>
                                <p>{comment.text}<br/><b>-{comment.from}</b></p>
                            </div>
                        )}
                    </div>
                </body>
            </div>
        )
    }
}

export default FullDescription;

소하 일 아슈 라프

코드의 문제 getSrc는 render 메서드 및 updating the state.

상태가 변경 될 때마다 React는 render 메서드를 호출합니다.

이 경우 React는 render 메서드를 호출하고 render 메서드에는 상태 업데이트가 있으므로 React는 render 메서드를 다시 호출하고이 프로세스는 영원히 계속됩니다.

해결책.

this.getSrcfrom render 메서드를 제거하고 수명주기 후크 getSrc에서 메서드를 호출합니다 componentDidMount.

지도 기능도 약간 변경했습니다.

예.

let myImages = this.state.imageUrl;

{myImages.map(mySrc => <img src={mySrc}/>)}

componentDidMount() {
 this.getSrc();
}

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

자바 스크립트 루프에서 푸시를 사용하는 방법은 무엇입니까?

분류에서Dev

자바 스크립트에서 chainig 함수를 사용할 때 중복을 피하는 방법은 무엇입니까?

분류에서Dev

사용자가 다른 탭에서 Google에서 로그 아웃 할 때 일부 자바 스크립트를 실행하는 방법은 무엇입니까?

분류에서Dev

자바 스크립트의 링크에서 삽입 할 때 이미지에 이벤트를 추가하는 방법은 무엇입니까?

분류에서Dev

PHP에서 for 루프를 사용할 때 마지막 루프를 확인하는 방법은 무엇입니까?

분류에서Dev

for 루프를 사용하여 자바 스크립트에서 여러 텍스트 상자를 만드는 방법은 무엇입니까?

분류에서Dev

Blazor 서버를 사용할 때 클라이언트 DOM 자바 스크립트 이벤트 핸들러를 추가하는 방법은 무엇입니까?

분류에서Dev

자바 스크립트 함수를 호출 할 때 반응 후크를 사용하는 적절한 방법은 무엇입니까?

분류에서Dev

HTML 페이지에서이 자바 스크립트를 사용하는 방법은 무엇입니까?

분류에서Dev

자바 스크립트에서 자체 기능에 대한 루프를 중지하는 방법은 무엇입니까?

분류에서Dev

바가 다른 스크립트에서 초기화되었을 때 Bash 스크립트에서 kdialog progressbar를 사용하는 방법은 무엇입니까?

분류에서Dev

Mac에서 IDLE을 시작할 때 사용자 지정 스크립트를 실행하는 방법은 무엇입니까?

분류에서Dev

루프를 사용하여 자바 스크립트에서 0.01 씩 숫자를 증가시키는 방법은 무엇입니까?

분류에서Dev

자바 스크립트에서 getJSON 함수를 올바르게 사용하는 방법은 무엇입니까?

분류에서Dev

사용자가 Tkinter에서 상호 작용할 때까지 스크립트를 기다리는 방법은 무엇입니까?

분류에서Dev

자바 스크립트에서 사용자 지정 개체를 만드는 방법은 무엇입니까?

분류에서Dev

새 페이지를로드 할 때 WebView에서로드 된 자바 스크립트 콘텐츠를 보존하는 방법은 무엇입니까?

분류에서Dev

장바구니에 추가 할 때 woocommerce에서 자바 스크립트를 변경하는 방법은 무엇입니까?

분류에서Dev

자바 스크립트에서 PHP 루프에 콘텐츠를 추가하는 방법은 무엇입니까?

분류에서Dev

xsl 문서에서 자바 스크립트 함수를 사용하는 방법은 무엇입니까?

분류에서Dev

자바 스크립트에서 재귀를 사용하여 객체를 찾는 방법은 무엇입니까?

분류에서Dev

텍스트 필드를 통해 양식을 제출할 때 Rails에서 자바 스크립트 코드를 실행하는 방법은 무엇입니까?

분류에서Dev

자바 스크립트 코드에서 phonegap 앱에 bixolon sdk를 사용하는 방법은 무엇입니까?

분류에서Dev

실행할 때 자체에서 자바 스크립트 북마크의 소스를 얻는 방법은 무엇입니까?

분류에서Dev

사용자가 scanf ()에 잘못된 데이터 유형을 입력 할 때 무한 루프를 수정하는 방법은 무엇입니까?

분류에서Dev

nuxtjs에서 일반 자바 스크립트를 사용하는 방법은 무엇입니까?

분류에서Dev

자바 스크립트 배열에서 jsp 변수를 사용하는 방법은 무엇입니까?

분류에서Dev

Rails 앱에서 자바 스크립트 코드를 사용하는 방법은 무엇입니까?

분류에서Dev

자바 스크립트 escape_javascript 레일에서 변수를 사용하는 방법은 무엇입니까?

Related 관련 기사

  1. 1

    자바 스크립트 루프에서 푸시를 사용하는 방법은 무엇입니까?

  2. 2

    자바 스크립트에서 chainig 함수를 사용할 때 중복을 피하는 방법은 무엇입니까?

  3. 3

    사용자가 다른 탭에서 Google에서 로그 아웃 할 때 일부 자바 스크립트를 실행하는 방법은 무엇입니까?

  4. 4

    자바 스크립트의 링크에서 삽입 할 때 이미지에 이벤트를 추가하는 방법은 무엇입니까?

  5. 5

    PHP에서 for 루프를 사용할 때 마지막 루프를 확인하는 방법은 무엇입니까?

  6. 6

    for 루프를 사용하여 자바 스크립트에서 여러 텍스트 상자를 만드는 방법은 무엇입니까?

  7. 7

    Blazor 서버를 사용할 때 클라이언트 DOM 자바 스크립트 이벤트 핸들러를 추가하는 방법은 무엇입니까?

  8. 8

    자바 스크립트 함수를 호출 할 때 반응 후크를 사용하는 적절한 방법은 무엇입니까?

  9. 9

    HTML 페이지에서이 자바 스크립트를 사용하는 방법은 무엇입니까?

  10. 10

    자바 스크립트에서 자체 기능에 대한 루프를 중지하는 방법은 무엇입니까?

  11. 11

    바가 다른 스크립트에서 초기화되었을 때 Bash 스크립트에서 kdialog progressbar를 사용하는 방법은 무엇입니까?

  12. 12

    Mac에서 IDLE을 시작할 때 사용자 지정 스크립트를 실행하는 방법은 무엇입니까?

  13. 13

    루프를 사용하여 자바 스크립트에서 0.01 씩 숫자를 증가시키는 방법은 무엇입니까?

  14. 14

    자바 스크립트에서 getJSON 함수를 올바르게 사용하는 방법은 무엇입니까?

  15. 15

    사용자가 Tkinter에서 상호 작용할 때까지 스크립트를 기다리는 방법은 무엇입니까?

  16. 16

    자바 스크립트에서 사용자 지정 개체를 만드는 방법은 무엇입니까?

  17. 17

    새 페이지를로드 할 때 WebView에서로드 된 자바 스크립트 콘텐츠를 보존하는 방법은 무엇입니까?

  18. 18

    장바구니에 추가 할 때 woocommerce에서 자바 스크립트를 변경하는 방법은 무엇입니까?

  19. 19

    자바 스크립트에서 PHP 루프에 콘텐츠를 추가하는 방법은 무엇입니까?

  20. 20

    xsl 문서에서 자바 스크립트 함수를 사용하는 방법은 무엇입니까?

  21. 21

    자바 스크립트에서 재귀를 사용하여 객체를 찾는 방법은 무엇입니까?

  22. 22

    텍스트 필드를 통해 양식을 제출할 때 Rails에서 자바 스크립트 코드를 실행하는 방법은 무엇입니까?

  23. 23

    자바 스크립트 코드에서 phonegap 앱에 bixolon sdk를 사용하는 방법은 무엇입니까?

  24. 24

    실행할 때 자체에서 자바 스크립트 북마크의 소스를 얻는 방법은 무엇입니까?

  25. 25

    사용자가 scanf ()에 잘못된 데이터 유형을 입력 할 때 무한 루프를 수정하는 방법은 무엇입니까?

  26. 26

    nuxtjs에서 일반 자바 스크립트를 사용하는 방법은 무엇입니까?

  27. 27

    자바 스크립트 배열에서 jsp 변수를 사용하는 방법은 무엇입니까?

  28. 28

    Rails 앱에서 자바 스크립트 코드를 사용하는 방법은 무엇입니까?

  29. 29

    자바 스크립트 escape_javascript 레일에서 변수를 사용하는 방법은 무엇입니까?

뜨겁다태그

보관