1
import { Component } from 'react'
export default class Overlay extends Component {
static propTypes = {
show: React.PropTypes.bool
};
constructor(props, context) {
super(props);
}
render() {
const { show } = this.props;
return (
<div id="overlay">
{show &&
this.props.children
}
</div>
)
}
}
위는 내 오버레이 구성 요소입니다. 아이들이 렌더링 된 후에 어떻게해야합니까?모달/오버레이 반응 구성 요소에 반응 구성 요소 IDmount 사용
다른 구성 요소의 어느 곳에서 나는 <Overlay show={true} />
을 수행합니다. 이제 아이들이 렌더링 된 후에 무언가를하고 싶습니다. 시도했는데 오버레이 구성 요소에
componentDidMount(){
console.log('hey');
}
이 포함되어 있지만 처음 트리거되지만 사용자가 오버레이를 트리거 한 후에는 트리거하지 않습니다.
모든 단서가 왜 작동하지 않습니다? 'document.getElementsByTagName ('body'). style [ 'background'] = 'red'; ' – Mellisa
getElementsByTagName 메소드는 요소의 콜렉션을 리턴하므로 반환하는 스타일에 직접 스타일을 설정할 수 없습니다. ([MDN Docs] (https://developer.mozilla.org/en-US/docs/Web/API/Element/getElementsByTagName)는 함수를 찾는 훌륭한 리소스입니다). 나는 다르게 접근 할 것이다 ... 1) 빨간색 배경을위한 CSS 클래스 만들기. '.overlay-background {background-color : red; }'2)'document.body.classList.add ('overlay-background');를 사용하십시오. –