반응하는 ModalSwitch 클래스는는 반응 라우터 공식 <a href="https://reacttraining.com/react-router/web/example/modal-gallery" rel="nofollow noreferrer">example</a>에 라우터 속성 값
previousLocation = this.props.location
가 왜 클래스 내에서 첫 번째 줄에 다음 코드
class ModalSwitch extends React.Component {
previousLocation = this.props.location
componentWillUpdate(nextProps) {
const {location} = this.props
if (
nextProps.history.action !== 'POP' &&
(!location.state || !location.state.modal)
) {
this.previousLocation = this.props.location
}
}
render() {
const {location} = this.props
const isModal = !!(
location.state &&
location.state.modal &&
this.previousLocation !== location
)
return (
// ...
)
}
}
으로,이
previousLocation
이 이런 방식으로 선언 되었습니까?previousLocation
전에const
을 추가해야한다고 생각했는데 구문 오류가 있기 때문에 잘못 되었습니까?
이 아니면 내가const previousLocation = this.props.location // syntax error
constructor
함수 내에서previousLocation
을 넣어해야한다고 생각하지만, 다시는constructor(){ super(); this.previousLocation = this.props.location // this.props would be undefined, why? }
이 두 번째 질문이 될 것이다 잘못 : 다음과 같은 장소에서
1. 들어this.props
동일의 값은?
감사합니다. @ Daniel Tran, 정말 감사드립니다! 질문 1에 대한 귀하의 대답은 정확합니다. 당신의 질문 1의 대답과 함께, 나는 당신이했던 것과 console.log (이전 위치)와 그 값을 볼 수있는 코드를 수정할 수 있습니다.그러나 질문 2에 대한 귀하의 대답은 잘못된 것 같습니다. 다른 위치로 이동할 때 constructor(), componentWillUpdate() 및 render() 내부의 빠른 console.log (this.props)가 다른 값을 표시하는지, 내가 맞는지 확인하십시오. – webberpuma
설명을위한 답변을 업데이트하십시오. –
좋습니다. 이제 분명합니다. 나는 대답을 수락합니다. 그래도 문법이 더 나을 수 있습니다. – webberpuma