Рекомендуется обрабатывать ваш мод с вашим состоянием компонента, а ссылки обычно используются для манипулирования DOM.
Что вы можете сделать, это инициализировать ваше состояние:
constructor(props) {
super(props)
this.state= {
isOpen : false
}
}
в вашем componentWillReceiveProps
:
componentWillReceiveProps(nextProps) {
const { visible } = nextProps
if(this.props.visible !== visible) {
this.setState({
isOpen: visible
})
}
}
и в вашем методе рендеринга:
render() {
return (
<div ref="modal">
{this.state.isOpen && this.props.children}
</div>
)
}
Дайте мне знать, если эта проблема все еще сохраняется. Рад помочь