상태가 올바르게 업데이트되지 않는 것 같습니다.

에이프릴 헤니 그

제가 본 스타 워즈 영화 목록을 만들려고합니다. 클릭 한 내용을 확인 및 선택 취소하고 localStorage에 저장하는 기능을 갖고 싶습니다. 어떤 이유로 한 번에 두 개 이상의 영화를 교차하는 경우 페이지를 새로 고친 후 마지막으로 교차 한 영화 만 교차 된 상태로 유지되는 경우가 있습니다. 내 콘솔로 디버깅을 시도했는데 내 상태에 결함이 있음을 알 수 있습니다. 때로는 두 개 이상의 요소를 클릭 한 후 일부 요소가 true로 바뀌지 않고 false로 유지됩니다.

이것은 내 코드입니다.

import React from 'react';
export default class Movie extends React.Component{
    constructor(props){
        super()
        this.state = (localStorage.appState) ? JSON.parse(localStorage.appState)
        : { 0: false, 1: false, 2: false, 3: false, 4: false, 5: false};
    }

    clickedTitle = (event) => {
        if (event.target.tagName === "SPAN") {
            this.setState({
                [event.target.id]: !this.state[event.target.id]
            }, () => {
                localStorage.setItem('appState',JSON.stringify(this.state))
            });
                // localStorage.clear()

            }
        }
        render(){

            return(
                <div className="sw_title"  onClick={this.clickedTitle}>
                <span id={this.props.index} className={`${this.state[this.props.index] ? "clicked" : "not-clicked"}`}> {this.props.title} </span>
                </div>
                );
            }
        }

소중한 시간 내 주셔서 미리 감사드립니다! 4 월

Dmitriy Godlevski

내가 말할 수있는 한 각 단일 영화 요소에서이 작업을 수행하고 있습니다. 동일한 localStorage 항목을 단일 영화의 새로운 값으로 설정할 때마다 (주어진 Movie 구성 요소에 대한 상태는 하나의 인스턴스에 대한 값만 보유합니다). MovieS에서와 같이 Movie 컴포넌트 외부에서 상태 관리를 유지하고 Movie에서 프레젠테이션 작업 만 수행하는 것이 더 나은 방법입니다.

import React from 'react';

export default class MovieS extends React.Component{
    constructor(props){
      super(props)
      this.state = (localStorage.appState) ? JSON.parse(localStorage.appState)
      : { 0: false, 1: false, 2: false, 3: false, 4: false, 5: false};
    }

    clickedTitle = (event) => {
      if (event.target.tagName === "SPAN") {
      this.setState({
          [event.target.id]: !this.state[event.target.id]}, () => {localStorage.setItem('appState', JSON.stringify(this.state))
      });
          // localStorage.clear()

      }
    }

    render(){
        this.props.movies.map( (movie) => (

            <Movie 
            click={clickedTitle}
            className={this.state[movie.id] ? "clicked" : "not-clicked"}
            title={movie.title}
            />

        ))

    }

}

function Movie({ click, className, title }) => (
  <div className="sw_title"  onClick={click}>
    <span id={this.props.index} className={}> {} </span>
  </div>
)

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

PyTorch가 올바르게 최적화되지 않는 것 같습니다.

분류에서Dev

sklearn 선형 회귀가 올바르게 맞지 않는 것 같습니다.

분류에서Dev

Django 서버가 올바르게 시작되지 않는 것은 mysql 문제인 것 같습니다.

분류에서Dev

Java가 테이블의 한쪽면이 올바르게 인쇄되지 않는 것 같습니다.

분류에서Dev

파이썬 함수가 올바르게 반복되지 않는 것 같습니다.

분류에서Dev

HTML 노드를 가져올 때 PHP appendChild가 올바르게 작동하지 않는 것 같습니다.

분류에서Dev

React useState가 깨 졌나요? 상태가 올바르게 업데이트되지 않았습니다.

분류에서Dev

GuestAdditions가 올바르게 설치 (6.0.2)되는 것 같지만 실행되지 않습니다.

분류에서Dev

XNA Sprite가 업데이트되지 않는 것 같습니다.

분류에서Dev

내 반응 상태가 올바르게 업데이트되지 않는 이유는 무엇입니까?

분류에서Dev

상태 후크가 올바르게 업데이트되지 않는 이유는 무엇입니까?

분류에서Dev

내 후크 상태가 올바르게 업데이트되지 않는 이유는 무엇입니까?

분류에서Dev

코드가 올바르게 읽히는 것 같지만 실행되지 않습니다.

분류에서Dev

Python ANTLR4 예제-파서가 올바르게 구문 분석되지 않는 것 같습니다.

분류에서Dev

setState가 상태를 업데이트하지 않는 것 같습니다.

분류에서Dev

computeDistanceBetween이 올바르게 계산되지 않는 것 같습니다.

분류에서Dev

AWS Elastic mapreduce가 스트리밍을 jar로 올바르게 변환하지 않는 것 같습니다.

분류에서Dev

AWS Elastic mapreduce가 스트리밍을 jar로 올바르게 변환하지 않는 것 같습니다.

분류에서Dev

함수 후 jQuery가 테이블에서 올바르게 작동하지 않는 것 같습니다.

분류에서Dev

CPU 코어 수가 올바르지 않은 것 같습니다.

분류에서Dev

CPU 코어 수가 올바르지 않은 것 같습니다.

분류에서Dev

Mechanicalsoup의 StatefulBrowser가 while True 루프에서 올바르게 새로 고쳐지지 않는 것 같습니다.

분류에서Dev

TinyXML2가 내 파일을 올바르게로드하지 않는 것 같습니다.

분류에서Dev

세마포가 여러 스레드에서 올바르게 작동하지 않는 것 같습니다.

분류에서Dev

Python 용 Pandas를 설치했는데 데이터 프레임 참조가 올바르게 표시되지 않는 것 같습니다.

분류에서Dev

Quicksort 데스크 테스트가 올바르지 않은 것 같습니다.

분류에서Dev

내 클래스가 바인딩이 아닌 API의 JSON 응답으로 올바르게 매핑되지 않는 것 같습니다.

분류에서Dev

컴파일되고 마운트 된 태그가 업데이트되지 않는 것 같습니다.

분류에서Dev

clang 및 gcc의이 경고가 올바르지 않은 것 같습니다.

Related 관련 기사

  1. 1

    PyTorch가 올바르게 최적화되지 않는 것 같습니다.

  2. 2

    sklearn 선형 회귀가 올바르게 맞지 않는 것 같습니다.

  3. 3

    Django 서버가 올바르게 시작되지 않는 것은 mysql 문제인 것 같습니다.

  4. 4

    Java가 테이블의 한쪽면이 올바르게 인쇄되지 않는 것 같습니다.

  5. 5

    파이썬 함수가 올바르게 반복되지 않는 것 같습니다.

  6. 6

    HTML 노드를 가져올 때 PHP appendChild가 올바르게 작동하지 않는 것 같습니다.

  7. 7

    React useState가 깨 졌나요? 상태가 올바르게 업데이트되지 않았습니다.

  8. 8

    GuestAdditions가 올바르게 설치 (6.0.2)되는 것 같지만 실행되지 않습니다.

  9. 9

    XNA Sprite가 업데이트되지 않는 것 같습니다.

  10. 10

    내 반응 상태가 올바르게 업데이트되지 않는 이유는 무엇입니까?

  11. 11

    상태 후크가 올바르게 업데이트되지 않는 이유는 무엇입니까?

  12. 12

    내 후크 상태가 올바르게 업데이트되지 않는 이유는 무엇입니까?

  13. 13

    코드가 올바르게 읽히는 것 같지만 실행되지 않습니다.

  14. 14

    Python ANTLR4 예제-파서가 올바르게 구문 분석되지 않는 것 같습니다.

  15. 15

    setState가 상태를 업데이트하지 않는 것 같습니다.

  16. 16

    computeDistanceBetween이 올바르게 계산되지 않는 것 같습니다.

  17. 17

    AWS Elastic mapreduce가 스트리밍을 jar로 올바르게 변환하지 않는 것 같습니다.

  18. 18

    AWS Elastic mapreduce가 스트리밍을 jar로 올바르게 변환하지 않는 것 같습니다.

  19. 19

    함수 후 jQuery가 테이블에서 올바르게 작동하지 않는 것 같습니다.

  20. 20

    CPU 코어 수가 올바르지 않은 것 같습니다.

  21. 21

    CPU 코어 수가 올바르지 않은 것 같습니다.

  22. 22

    Mechanicalsoup의 StatefulBrowser가 while True 루프에서 올바르게 새로 고쳐지지 않는 것 같습니다.

  23. 23

    TinyXML2가 내 파일을 올바르게로드하지 않는 것 같습니다.

  24. 24

    세마포가 여러 스레드에서 올바르게 작동하지 않는 것 같습니다.

  25. 25

    Python 용 Pandas를 설치했는데 데이터 프레임 참조가 올바르게 표시되지 않는 것 같습니다.

  26. 26

    Quicksort 데스크 테스트가 올바르지 않은 것 같습니다.

  27. 27

    내 클래스가 바인딩이 아닌 API의 JSON 응답으로 올바르게 매핑되지 않는 것 같습니다.

  28. 28

    컴파일되고 마운트 된 태그가 업데이트되지 않는 것 같습니다.

  29. 29

    clang 및 gcc의이 경고가 올바르지 않은 것 같습니다.

뜨겁다태그

보관