2017-01-18 4 views
0

간단한 질문이지만 다음과 같습니다. 소품이 변경 될 때 구성 요소에 다시 렌더링하도록 지시하는 방법이 있습니까? 나는 특정 작업에서 상태를 업데이트하는 redux 저장소에 연결된 구성 요소를 가지고 있는데,이 상태는 응용 프로그램이 변경 사항에 응답하기를 원하는 시점에 소품으로 필터링됩니다.소품 업데이트에서 구성 요소를 다시 렌더링하십시오.

componentDidUpdate()을 사용 하시겠습니까?

뭔가 같은 :

// ... 
componentDidUpdate(prevProps, prevState) { 
    if (prevProps !== this.props) { 
     // re-render x <-- not sure how to do this 
    } 
} 

플러스 무엇인지는 전체 구성 요소를 다시 렌더링 할 수있는 방법이 될 것이며, 무엇을 다시 렌더링 만 업데이트 된 소품의 방법이 될 것이다?

도움을 주시면 감사하겠습니다.

+2

소품에 대한 자세한 정보로 질문을 업데이트 할 수 있습니까? 수동으로 호출 할 필요없이 구성 요소를 변경할 때 구성 요소가 다시 "자동으로"렌더링되어야합니다. https://github.com/reactjs/redux/issues/585#issuecomment-133028621에서 도움이되는지 확인하려면 –

답변

0

this.forceUpdate()으로 전화 할 수 있습니다. 또 다른 방법은 this.setState(this.state)입니다. 당신의 소품은 당신이 무한 루프를 얻을 것이다 상태를 변경해야 뭔가 경우

3

당신은

componentWillReceiveProps (props){ 
this.doSomething(props) // To some function. 
this.setState({data: props}) // This will update your component. 
} 

를 사용할 수 있습니다.

체크 아웃 라이프 사이클 here을 반품해도 도움이 될 수 있습니다.

+1

'componentWillReciveProps' ->'componentWillReceiveProps'를 참조하십시오. 변경 사항을 편집 할 때 최소한의 문자가 필요하므로 편집 할 수 없습니다! – jhrr

+1

@jhrr 감사를 전했습니다 :) – Modig

관련 문제