반응 후크 useState ()의 정말 이상한 동작

군터 폰 괴첸 산체스

현재 간단한 슬라이드 쇼를 위해 Swiper를 사용하여 반응 앱을 작성 중이며 모든 것이 잘 작동합니다. 이제 setActiveSlide 함수로 현재 슬라이드를 표시하여 탐색을 개선하려고합니다. 첫 번째로드 후에는 정상적으로 작동합니다. setActiveSlide를 호출하는 버튼을 클릭 한 후 스토리 객체가 null로 설정되어 이전 또는 다음 버튼을 두 번 클릭하면 오류 (Uncaught TypeError : null의 'slideNext'속성을 읽을 수 없음)가 발생합니다. setActiveSlide를 호출 한 후 스토리 개체가 null로 설정되는 이유는 무엇입니까? 도와주세요

다음은 앱의 단순화 된 버전입니다.

import React, { useState, useEffect, useRef } from "react";
import Swiper from "swiper";

const Slideshow = props => {
    var swiper = useRef();
    var story = null;
    const [activeSlide, setActiveSlide] = useState("");

    useEffect(() => {
        story = new Swiper(swiper.current, {
            loop: false,
            speed: 1100
        });
    }, []);

    const prevSlide = () => {
        setActiveSlide("PREV");
        story.slidePrev();
    };

    const nextSlide = () => {
        setActiveSlide("NEXT");
        story.slideNext();
    };

    return (
        <div className="container-story" ref={swiper}>
            <div className="container-story-wrapper swiper-wrapper">
                {props.children}
            </div>

            <div className="navigation">
                <button onClick={prevSlide}> Previous </button>
                <button onClick={nextSlide}> Next </button>

                {activeSlide}
            </div>
            <div className="lightbox-container"></div>
        </div>
    );
};
export default Slideshow; 
ApplePearPerson

이것은 함수 구성 요소이므로 변수가 여러 렌더링을 통해 유지되도록하려면에서와 같이 로컬로 선언 할 수 없습니다 var story = null. 첫 번째 렌더링에는 설정이 있지만 구성 요소가 다시 렌더링되면 다시 null로 설정합니다.

이를 처리하는 적절한 방법은 Reacts useRef후크 를 사용하는 것 입니다. 이것은 여러 렌더링을 통해 변수가 지속되도록하는 방법입니다.

선언하려면 : const _story = useRef(null);

_story변수 를 읽고 쓰려면 에 액세스해야합니다 _story.current. 따라서 useEffect마운트 에서 대신 이것을 사용해야합니다.

_story.current = new Swiper(swiper.current, {
    loop: false,
    speed: 1100
});

그리고 핸들러에서 : _story.current.slideNext();

useRef 여기에서 자세한 내용을 읽을 수 있습니다 .

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

반응 후크의 이상한 동작 useEffect 및 ref 객체

분류에서Dev

useState 후크 변수 반응의 파괴 정렬?

분류에서Dev

AgGridColumn onCellClicked 함수의 반응 후크 useState

분류에서Dev

useState 반응 후크

분류에서Dev

useState 후크에서 상태를 설정 한 후 반응 상태 변수가 정확하지 않음

분류에서Dev

Material-UI Tab 컨테이너에서 반응 후크 useState 구현이 작동하지 않습니다.

분류에서Dev

React useState-useState 및 배열의 이상한 동작

분류에서Dev

자바 스크립트-비동기 가져 오기의 반응 데이터는 'useEffect ()'및 'useState'를 사용하여 정의되지 않습니다.

분류에서Dev

사용자 정의 후크를 사용하면서 useState를 useReducer로 대체하는 반응

분류에서Dev

API 호출 전에 useState 후크 업데이트에 반응

분류에서Dev

이유는 확산 useState 후크 반응과 함께 작업을 속성하지 않습니다

분류에서Dev

사용자 정의 필드 배열에서 작동하지 않는 반응 후크 양식 유효성 검사

분류에서Dev

반응 "useState"에서 작동하지 않는 날짜 설정

분류에서Dev

Route의 정확한 경로 반응이 예상대로 작동하지 않습니다.

분류에서Dev

반응 후크 형식의 데이터

분류에서Dev

반응의 내 버튼이 작동하지 않습니다-useState 및 useEffect를 사용합니다.

분류에서Dev

네이티브 useState 동기화 반응

분류에서Dev

Emacs의 발생 모드 후크에서 이상한 동작

분류에서Dev

반응 후크에서 구성 요소는 설정 상태를 호출하지 않고도 작동합니다.

분류에서Dev

Nav 링크의 activeClassName이 작동하지 않음-반응

분류에서Dev

`useState` 후크의 결과를 닫으면 성가신 동작이 발생합니다.

분류에서Dev

응답 헤더의 쿠키 설정이 '반'작동합니다.

분류에서Dev

반응 후크로 작동하지 않는 UI에서 데이터 정렬 및 렌더링

분류에서Dev

복잡한 시나리오가 작동하지에 대한 setState를 콜백의 교체는 useEffect 후크와 후크 반응

분류에서Dev

dimple.js에서 내 차트의 반응 형 크기 조정이 작동하지 않습니다.

분류에서Dev

사용자 정의 반응 후크가 값을 업데이트하지 않음

분류에서Dev

반응의 "useState"훅에서 초기 상태가 계속해서 설정되는 이유

분류에서Dev

스크롤 UITableView의 이상한 동작

분류에서Dev

UI 마스크의 이상한 동작

Related 관련 기사

  1. 1

    반응 후크의 이상한 동작 useEffect 및 ref 객체

  2. 2

    useState 후크 변수 반응의 파괴 정렬?

  3. 3

    AgGridColumn onCellClicked 함수의 반응 후크 useState

  4. 4

    useState 반응 후크

  5. 5

    useState 후크에서 상태를 설정 한 후 반응 상태 변수가 정확하지 않음

  6. 6

    Material-UI Tab 컨테이너에서 반응 후크 useState 구현이 작동하지 않습니다.

  7. 7

    React useState-useState 및 배열의 이상한 동작

  8. 8

    자바 스크립트-비동기 가져 오기의 반응 데이터는 'useEffect ()'및 'useState'를 사용하여 정의되지 않습니다.

  9. 9

    사용자 정의 후크를 사용하면서 useState를 useReducer로 대체하는 반응

  10. 10

    API 호출 전에 useState 후크 업데이트에 반응

  11. 11

    이유는 확산 useState 후크 반응과 함께 작업을 속성하지 않습니다

  12. 12

    사용자 정의 필드 배열에서 작동하지 않는 반응 후크 양식 유효성 검사

  13. 13

    반응 "useState"에서 작동하지 않는 날짜 설정

  14. 14

    Route의 정확한 경로 반응이 예상대로 작동하지 않습니다.

  15. 15

    반응 후크 형식의 데이터

  16. 16

    반응의 내 버튼이 작동하지 않습니다-useState 및 useEffect를 사용합니다.

  17. 17

    네이티브 useState 동기화 반응

  18. 18

    Emacs의 발생 모드 후크에서 이상한 동작

  19. 19

    반응 후크에서 구성 요소는 설정 상태를 호출하지 않고도 작동합니다.

  20. 20

    Nav 링크의 activeClassName이 작동하지 않음-반응

  21. 21

    `useState` 후크의 결과를 닫으면 성가신 동작이 발생합니다.

  22. 22

    응답 헤더의 쿠키 설정이 '반'작동합니다.

  23. 23

    반응 후크로 작동하지 않는 UI에서 데이터 정렬 및 렌더링

  24. 24

    복잡한 시나리오가 작동하지에 대한 setState를 콜백의 교체는 useEffect 후크와 후크 반응

  25. 25

    dimple.js에서 내 차트의 반응 형 크기 조정이 작동하지 않습니다.

  26. 26

    사용자 정의 반응 후크가 값을 업데이트하지 않음

  27. 27

    반응의 "useState"훅에서 초기 상태가 계속해서 설정되는 이유

  28. 28

    스크롤 UITableView의 이상한 동작

  29. 29

    UI 마스크의 이상한 동작

뜨겁다태그

보관