ReactJS 변수 변경이 요소를 렌더링하지 않습니다.

JVG

나는 꽤 간단한 상황을 가지고 있습니다 (A-Frame / A-Frame React와 함께 ReactJS를 사용하고 있지만 여기에는 실제로 영향을 미치지 않아야합니다).

사용자에게 개체를 클릭 / 스 와이프 할 수 있음을 암시하는 엔터티가 있습니다. 사용자가 해당 개체를 클릭 한 후 해당 개체가 사라지고 10 초 후에 다시 나타나기를 원합니다.

나는 상대적으로 React를 처음 사용하므로 여기서 뭔가 잘못하고있을 있습니다.

  1. 내 JS 파일의 맨 위에 (가져온 후 class시작 하기 전에let showHinter = true;

  2. render()방법에 다음과 같은 엔티티가 있습니다 .

    <AFrameEntity
        events={{
          click: (ev) => {
    
            showHinter = false;
    
            setTimeout(() => {
              console.log("showHinter Value:", showHinter)
    
              /* ↑ This fires, but ↓ this doesn't do anything */
    
              showHinter = true;
              console.log("showHinter Value:", showHinter)
            }, 5000)
    
          }
        }}
      >
      </AFrameEntity>
    
  3. 내 "힌터"구성 요소는 다음과 같은 형제입니다.

    {
    
      <AFrameEntity /* Bunch of irrelevant stuff here */ >
    
        // fade out
        {
         !showHinter && 
          <a-animation 
            attribute="material.opacity"
            dur="1000"
            fill="forwards"
            from="1"
            to="0"
            repeat="0"></a-animation>
        }
          //fade in
        {
         showHinter && 
          <a-animation 
            attribute="material.opacity"
            dur="1000"
            fill="forwards"
            from="0"
            to="1"
            repeat="0"></a-animation>
        }
      </AFrameEntity>
    }
    

클릭 showHinter하면가 올바르게 false로 설정되고 요소가 사라집니다. 그러나 다시 나타나지 않습니다. 내 콘솔 로그 발생 showHinter === false하지만 내 페이드 인 애니메이션이 발생하지 않으며 react의 devtools로 요소를 검사하면 페이드 아웃 애니메이션 엔티티가 표시되고 페이드 인 항목이 표시되지 않습니다 showHinter === true.

그래서 기본적인 질문은 왜 React가 내 변수 변경에 반응하지 않는 것일까 요? 어떻게 든 강제로 다시 렌더링해야합니까?

Tiega

뷰에 영향을 미치는 모든 변경을 수행하거나 상태를 통해 다시 렌더링해야합니다.

귀하의 경우에는 다음과 같은 작업을 수행하십시오 (테스트되지 않음).

<AFrameEntity
events={{
  click: (ev) => {

    this.setState({showHinter: false)};

    setTimeout(() => {
      console.log("showHinter Value:", this.state.showHinter)

      /* ↑ This fires, but ↓ this doesn't do anything */

      this.setState({showHinter: true)};
      console.log("showHinter Value:", this.state.showHinter)
    }, 5000)

  }
}}

그리고 렌더링 기능에서 상태를 확인하십시오.

{

  <AFrameEntity /* Bunch of irrelevant stuff here */ >

    // fade out
    {
     !this.state.showHinter && 
      <a-animation 
        attribute="material.opacity"
        dur="1000"
        fill="forwards"
        from="1"
        to="0"
        repeat="0"></a-animation>
    }
      //fade in
    {
     this.state.showHinter && 
      <a-animation 
        attribute="material.opacity"
        dur="1000"
        fill="forwards"
        from="0"
        to="1"
        repeat="0"></a-animation>
    }
  </AFrameEntity>
}

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

reactjs-상태 변경은 구성 요소를 다시 렌더링하지 않습니다.

분류에서Dev

반응 : 컨텍스트의 변경이 내 구성 요소를 다시 렌더링하지 않습니다.

분류에서Dev

React Router는 링크를 변경하지만 적절한 구성 요소를 렌더링하지 않습니다.

분류에서Dev

Reactjs : 데이터 변경시 하위 구성 요소가 다시 렌더링되지 않는 이유는 무엇입니까?

분류에서Dev

배열 소품이 변경 될 때 React 하위 구성 요소가 다시 렌더링되지 않습니다.

분류에서Dev

redux 상태 변경시 reactjs 프리젠 테이션 구성 요소가 다시 렌더링되지 않음

분류에서Dev

ReactJS : 상태 조작이 하위 구성 요소를 제대로 렌더링하지 않습니다.

분류에서Dev

JSTree가 JS 변수의 JSON 데이터를 렌더링하지 않습니다.

분류에서Dev

라우터는 URL을 변경하지만 렌더링 된 구성 요소는 변경하지 않습니다.

분류에서Dev

구성 요소를 다시 렌더링하지 않는 UseContext 변경에 반응

분류에서Dev

조각 셰이더에서 사용하지 않는 변수는 렌더링 결과를 변경합니다.

분류에서Dev

URL 변경시 페이지를 다시로드하지 않으면 React가 렌더링되지 않습니다.

분류에서Dev

react-router 링크가 URL을 변경하지만 Route 구성 요소가 렌더링되지 않습니다.

분류에서Dev

다른 구성 요소의 렌더링 함수 내에서 선언 된 구성 요소를 렌더링하면 REACT 17의 componentDidMount 메서드에 대한 변경 사항이 포함되지 않습니다.

분류에서Dev

경로가 변경 될 때 상위 경로 처리기 구성 요소를 다시 렌더링하지 않도록 할 수 있습니까?

분류에서Dev

ReactJs 렌더링이 데이터 변경시 제대로 업데이트되지 않습니다.

분류에서Dev

전체 목록을 다시 렌더링하지 않고 루프의 단일 하위 구성 요소를 변경할 수 있습니까 (반응 후크)

분류에서Dev

Django URL이 변경되지만 적절한보기를 렌더링하지 않습니다.

분류에서Dev

소품이 변경되면 React Native 구성 요소가 다시 렌더링되지 않습니다.

분류에서Dev

상태 비 저장 구성 요소는 소품이 변경 될 때 다시 렌더링되지 않습니다.

분류에서Dev

setState ()를 사용해도 상태 변경 후 React 구성 요소가 다시 렌더링되지 않습니다.

분류에서Dev

ReactJS-상태 변경시 버튼이 다시 렌더링되지 않습니까?

분류에서Dev

React-다시 렌더링 한 후 Google지도 구성 요소가지도를 변경하지 않음

분류에서Dev

상태를 변경하지 않고 구성 요소를 다시 렌더링하는 방법

분류에서Dev

reactjs에서 변수 구성 요소 이름 렌더링

분류에서Dev

@observable 속성을 변경하면 mobx로 프로젝트에서 관찰자 구성 요소를 다시 렌더링하지 않습니다.

분류에서Dev

ReactJS 조건부 렌더링이 작동하지 않습니다.

분류에서Dev

데이터가 변경 될 때 vue v-for가 하위 구성 요소를 다시 렌더링하지 않는 이유는 무엇입니까?

분류에서Dev

내가 페이지 URL을 직접 입력하거나 갱신하는 경우 구성 요소가 reactjs 렌더링하지 않습니다

Related 관련 기사

  1. 1

    reactjs-상태 변경은 구성 요소를 다시 렌더링하지 않습니다.

  2. 2

    반응 : 컨텍스트의 변경이 내 구성 요소를 다시 렌더링하지 않습니다.

  3. 3

    React Router는 링크를 변경하지만 적절한 구성 요소를 렌더링하지 않습니다.

  4. 4

    Reactjs : 데이터 변경시 하위 구성 요소가 다시 렌더링되지 않는 이유는 무엇입니까?

  5. 5

    배열 소품이 변경 될 때 React 하위 구성 요소가 다시 렌더링되지 않습니다.

  6. 6

    redux 상태 변경시 reactjs 프리젠 테이션 구성 요소가 다시 렌더링되지 않음

  7. 7

    ReactJS : 상태 조작이 하위 구성 요소를 제대로 렌더링하지 않습니다.

  8. 8

    JSTree가 JS 변수의 JSON 데이터를 렌더링하지 않습니다.

  9. 9

    라우터는 URL을 변경하지만 렌더링 된 구성 요소는 변경하지 않습니다.

  10. 10

    구성 요소를 다시 렌더링하지 않는 UseContext 변경에 반응

  11. 11

    조각 셰이더에서 사용하지 않는 변수는 렌더링 결과를 변경합니다.

  12. 12

    URL 변경시 페이지를 다시로드하지 않으면 React가 렌더링되지 않습니다.

  13. 13

    react-router 링크가 URL을 변경하지만 Route 구성 요소가 렌더링되지 않습니다.

  14. 14

    다른 구성 요소의 렌더링 함수 내에서 선언 된 구성 요소를 렌더링하면 REACT 17의 componentDidMount 메서드에 대한 변경 사항이 포함되지 않습니다.

  15. 15

    경로가 변경 될 때 상위 경로 처리기 구성 요소를 다시 렌더링하지 않도록 할 수 있습니까?

  16. 16

    ReactJs 렌더링이 데이터 변경시 제대로 업데이트되지 않습니다.

  17. 17

    전체 목록을 다시 렌더링하지 않고 루프의 단일 하위 구성 요소를 변경할 수 있습니까 (반응 후크)

  18. 18

    Django URL이 변경되지만 적절한보기를 렌더링하지 않습니다.

  19. 19

    소품이 변경되면 React Native 구성 요소가 다시 렌더링되지 않습니다.

  20. 20

    상태 비 저장 구성 요소는 소품이 변경 될 때 다시 렌더링되지 않습니다.

  21. 21

    setState ()를 사용해도 상태 변경 후 React 구성 요소가 다시 렌더링되지 않습니다.

  22. 22

    ReactJS-상태 변경시 버튼이 다시 렌더링되지 않습니까?

  23. 23

    React-다시 렌더링 한 후 Google지도 구성 요소가지도를 변경하지 않음

  24. 24

    상태를 변경하지 않고 구성 요소를 다시 렌더링하는 방법

  25. 25

    reactjs에서 변수 구성 요소 이름 렌더링

  26. 26

    @observable 속성을 변경하면 mobx로 프로젝트에서 관찰자 구성 요소를 다시 렌더링하지 않습니다.

  27. 27

    ReactJS 조건부 렌더링이 작동하지 않습니다.

  28. 28

    데이터가 변경 될 때 vue v-for가 하위 구성 요소를 다시 렌더링하지 않는 이유는 무엇입니까?

  29. 29

    내가 페이지 URL을 직접 입력하거나 갱신하는 경우 구성 요소가 reactjs 렌더링하지 않습니다

뜨겁다태그

보관