경로 매개 변수 변경시 구성 요소 새로 고침

mjanisz1

경로 매개 변수를 변경할 때 컴포넌트가 props를 업데이트하지 않는 이유는 무엇입니까?

setState내부 에서 사용하려고하는데 componentWillReceiveProps불이 안 나오나요?

export default class HomePage extends React.PureComponent {
  movies = require('../../movieList.json');
  state = {
    match: this.props.match,
    id: null
  }

  componentWillReceiveProps(np) {
    if(np.match.params.id !== this.props.match.params.id) {
      console.log('UPDATING PROPS')
      this.setState({ match: np.match })
    }
  }

  render() {
    const { match } = this.props;

    const movie = this.movies[match.params.id || movieOrder[0]];
    const nextMovie = getNextMovie(match.params.id || movieOrder[0]);
    const prevMovie = getPrevMovie(match.params.id || movieOrder[0]);
    return (
      <>
        <h1>{movie.title}</h1>
        <Link to={nextMovie}>Next</Link>
        <Link to={prevMovie}>Prev</Link>
      </>
    );
  }
}

nextMovieprevMovie링크 내부 설정해야 ID를 얻을. 불행히도 첫 번째 렌더링 중에 만 설정됩니다. 클릭하면 URL 변경을 볼 수 있지만 업데이트가 실행되지 않습니다.

여기 스위치를 잡고있는 부품

export default class App extends React.PureComponent {

  state = {
    isLoading: true,
  }

  componentDidMount() {
    PreloaderService.preload('core').then(() => {
      console.log('LOADED ALL');
      console.log('PRELOADER SERVICE', PreloaderService);
      this.setState({ isLoading: false });
      console.log('Preloader assets', PreloaderService.getAsset('dog-video'))
    });
  }

  render() {
    const { isLoading } = this.state;

    if(isLoading) {
      return(
        <div>
          is loading
        </div>
      )
    }
    return (
      <div>
        {/* <Background /> */}
        <Switch>
          <Route exact path="/" component={HomePage} />
          <Route exact path="/:id" component={props => <HomePage {...props} />} />
          <Route component={NotFoundPage} />
        </Switch>
        <GlobalStyle />
      </div>
    );
  }

}```
Istvan Szasz

codesandbox 레크리에이션 으로 작업하는 것 같습니다 .

누락 된 코드로 약간 즉흥적으로 수정해야했습니다.

의 가치는 movieOrder[0]무엇입니까? 0대한 유효한 값 match.params.id입니까?

어떻게 getNextMovieprevMovie같은 모습?

또한 논리 Home에서 구성 요소의 상태를 사용하지 않기 때문에 구성 요소 render없이도 올바른 동영상을 렌더링해야한다고 생각합니다.

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

하위 구성 요소 변경시 앱 상태 새로 고침

분류에서Dev

새로 고침시 색 구성표 변경

분류에서Dev

Angular는 현재 경로와 매개 변수를 구성 요소에보고합니까?

분류에서Dev

레일에서 URL 매개 변수가 변경되면 URL 새로 고침

분류에서Dev

사용할 구성 요소에 대한 경로 매개 변수가 포함 된 각도 경로 경로

분류에서Dev

Angular 2의 입력으로 경로 매개 변수를 자식 구성 요소에 전달하십시오.

분류에서Dev

Vue에서 경로 매개 변수가 변경 될 때 'from'구성 요소에 액세스

분류에서Dev

바인딩 개체 변경시보기 새로 고침

분류에서Dev

페이지가 변경 될 때 Polymer 요소를 어떻게 새로 고침 / 다시로드 할 수 있나요?

분류에서Dev

가시성 변경 후 위치 새로 고침

분류에서Dev

변경시 Iframe 새로 고침

분류에서Dev

변경시 JavaScript 파일 "새로 고침"

분류에서Dev

Datacontext 변경시 Datagrid 새로 고침

분류에서Dev

iframe 새로 고침시 URL 변경

분류에서Dev

Angular-경로 변경시 새로 고침 또는 재 구독 서비스

분류에서Dev

JSP에서 매개 변수로 페이지 새로 고침

분류에서Dev

Chrome 개발자 도구에서 새로 고침되는 요소 주변의 강조 표시를 비활성화하려면 어떻게해야하나요?

분류에서Dev

여러 하위 구성 요소를 매개 변수로 전달

분류에서Dev

각도 새로 고침 구성 요소

분류에서Dev

매개 변수가 변경 될 때마다 서비스에서 구성 요소로 데이터 전달

분류에서Dev

Vue Router에서 경로 매개 변수를 기반으로 다른 구성 요소로드

분류에서Dev

URL의 매개 변수 업데이트 (새로 고침 없음)

분류에서Dev

페이지 새로 고침없이 URL 매개 변수 설정

분류에서Dev

JS : 특정 매개 변수없이 페이지 새로 고침

분류에서Dev

페이지 새로 고침으로 jQuery 변경 html 요소 스타일

분류에서Dev

경로 매개 변수 (기능 구성 요소)에 액세스 할 수 없습니다.

분류에서Dev

angular2의 쿼리 매개 변수 변경시 구성 요소가 다시로드되는 것을 방지하는 방법은 무엇입니까?

분류에서Dev

일반 매개 변수로 변경 가능한 기본 요소

분류에서Dev

쿼리 매개 변수 또는 경로 매개 변수가 변경된 경우 구성 요소를 다시 마운트하지 않도록 할 수 있습니까?

Related 관련 기사

  1. 1

    하위 구성 요소 변경시 앱 상태 새로 고침

  2. 2

    새로 고침시 색 구성표 변경

  3. 3

    Angular는 현재 경로와 매개 변수를 구성 요소에보고합니까?

  4. 4

    레일에서 URL 매개 변수가 변경되면 URL 새로 고침

  5. 5

    사용할 구성 요소에 대한 경로 매개 변수가 포함 된 각도 경로 경로

  6. 6

    Angular 2의 입력으로 경로 매개 변수를 자식 구성 요소에 전달하십시오.

  7. 7

    Vue에서 경로 매개 변수가 변경 될 때 'from'구성 요소에 액세스

  8. 8

    바인딩 개체 변경시보기 새로 고침

  9. 9

    페이지가 변경 될 때 Polymer 요소를 어떻게 새로 고침 / 다시로드 할 수 있나요?

  10. 10

    가시성 변경 후 위치 새로 고침

  11. 11

    변경시 Iframe 새로 고침

  12. 12

    변경시 JavaScript 파일 "새로 고침"

  13. 13

    Datacontext 변경시 Datagrid 새로 고침

  14. 14

    iframe 새로 고침시 URL 변경

  15. 15

    Angular-경로 변경시 새로 고침 또는 재 구독 서비스

  16. 16

    JSP에서 매개 변수로 페이지 새로 고침

  17. 17

    Chrome 개발자 도구에서 새로 고침되는 요소 주변의 강조 표시를 비활성화하려면 어떻게해야하나요?

  18. 18

    여러 하위 구성 요소를 매개 변수로 전달

  19. 19

    각도 새로 고침 구성 요소

  20. 20

    매개 변수가 변경 될 때마다 서비스에서 구성 요소로 데이터 전달

  21. 21

    Vue Router에서 경로 매개 변수를 기반으로 다른 구성 요소로드

  22. 22

    URL의 매개 변수 업데이트 (새로 고침 없음)

  23. 23

    페이지 새로 고침없이 URL 매개 변수 설정

  24. 24

    JS : 특정 매개 변수없이 페이지 새로 고침

  25. 25

    페이지 새로 고침으로 jQuery 변경 html 요소 스타일

  26. 26

    경로 매개 변수 (기능 구성 요소)에 액세스 할 수 없습니다.

  27. 27

    angular2의 쿼리 매개 변수 변경시 구성 요소가 다시로드되는 것을 방지하는 방법은 무엇입니까?

  28. 28

    일반 매개 변수로 변경 가능한 기본 요소

  29. 29

    쿼리 매개 변수 또는 경로 매개 변수가 변경된 경우 구성 요소를 다시 마운트하지 않도록 할 수 있습니까?

뜨겁다태그

보관