두 개의 중첩 된 반응 구성 요소 : Outer
및 Inner
이 있습니다. setState
이 Inner
이라고 할 때마다 내부 구성 요소 인 render
이 호출됩니다. 또한 외부 컴포넌트의 setState
을 호출 할 때마다 render
외부 컴포넌트와 내부 컴포넌트의 함수가 호출됩니다. 이 두 경우를 구별하고 내부 구성 요소의 표현이 무엇인지 감지하고 싶습니다. 내 render
Inner
의 기능은 그에 따라 다르게 동작해야합니다. 어떻게해야합니까?React 구성 요소 렌더링의 원인을 구별하는 방법 : 구성 요소의 내부 또는 외부에서 무엇인가?
3
A
답변
0
setState가 호출 될 때가 아니라 구성 요소가 새 소품 (여기에서 확인하십시오 : http://busypeoples.github.io/post/react-component-lifecycle/)을받을 때 구성 요소 WillReceiveProps가 호출된다는 사실을 사용할 수 있습니다. 중요하게는 다른 소품 일 필요조차 없습니다 기존의 것보다 (https://facebook.github.io/react/docs/component-specs.html#updating-componentwillreceiveprops). 당신은 또한 이후에하는 것이 어떻게 든 렌더링 것으로 설정 해제, 아니면 그냥 this.setState 모든 호출 또한 {: 거짓 parentUpdated}에 포함되어 있는지 확인해야하지만 그래서 당신은
componentWillReceiveProps() {
this.setState({parentUpdated: true});
}
render() {
if (this.state.parentUpdated) {
// Render one way
} else {
// Render the other way
}
}
의 라인을 따라 뭔가를 할 수 있어야합니다.
0
Update
단계를 제어하려는 경우 Inner
구성 요소의 수명주기. Outer
을 다시 렌더링 할 때 단계를 doc에서 확인하여 Inner
의 동작을 제어 할 수 있습니다.
관련 문제
- 1. Vue.js - 구성 요소 내부 구성 요소
- 2. React Dropdown 구성 요소
- 3. React 구성 요소 내에 React 요소를 렌더링합니다.
- 4. React 구성 요소의 조건부 특성?
- 5. React 구성 요소의 소품에 액세스
- 6. React/React Native : 구성 요소의 실행 순서
- 7. DB 구성 요소 또는 새 구성 요소의 시각적 상속?
- 8. 다른 구성 요소에 구성 요소 추가하기 React
- 9. React Native : 다른 구성 요소의 구성 요소에서 함수 실행
- 10. 다른 React 구성 요소 구문
- 11. React : 다른 구성 요소의 구성 요소에 어떻게 액세스합니까?
- 12. React ES6의 하위 구성 요소
- 13. React 구성 요소 구문 오류
- 14. demo.html 구성 요소 내부
- 15. React 구성 요소의 메서드가 HTML을 렌더링하지 않습니다.
- 16. 테스트 방법 React 구성 요소 비동기 메서드
- 17. 생성자 또는 구성 요소의 초기 반응 구성 요소 상태를 설정합니까?
- 18. 클래스를 확장하여 하위 구성 요소의 부모 구성 요소 상태를 변경하십시오.
- 19. react-keydown을 사용하여 내부 구성 요소의 keydown 이벤트 잡기
- 20. React : Redux 상태로 구성 요소 ID를 전달하는 방법
- 21. Access Angular2 구성 요소의 구성 요소
- 22. React 구성 요소 클래스 메타 프로그래밍
- 23. FieldArray 구성 요소의 Redux 양식 필드 구성 요소 사용
- 24. React : 구성 요소의 내용 만 남김
- 25. Reusable react-redux 컨테이너 구성 요소
- 26. React 구성 요소를 바꾸는 방법
- 27. socket.io 수신 대기를위한 React 구성 요소 설정
- 28. React : 포커스를 잃는 React 구성 요소 버튼을 얻는 방법?
- 29. JPanel 내부 구성 요소 중심화
- 30. props가 React 구성 요소 내에서 정의되지 않았습니다.
'componentWillUpdate'는 두 경우 모두 동일한 매개 변수를 사용하여 호출됩니다. 어떻게 유용한 지 모르겠다. – Luka
'render' 메소드의 동작을 결정하는'nextProps'와'nextState' 속성이 있습니다. 오래된'props'와'states'를 새로운 것으로 비교하여 컴포넌트를 제어 할 수 있습니다. 행운을 빕니다 ! –
나는 그것들을 비교해 보았습니다. 'render'는'setState'가 호출 될 때 호출됩니다. 상태를 변경하지 않아도 (예를 들어 같은 값을 상태로 설정합니다). 그리고 이것은 구성 요소의 내부와 외부 모두에서 발생할 수 있습니다. 이 경우에는'componentWillUpdate'와 차이점을 발견 할 수 없습니다. – Luka