我有一个简单的模态:
renderModalForm() {
return (
<Modal
closeTimeoutMS={150}
show={this.state.isModalOpen}
onHide={this.isModalOpen.bind(this)}
>
<Modal.Body>
<div className="close-button-modal">
<i className="fa fa-times fa-2x pull-right" onClick={this.onButtonClick.bind(this)}></i>
<div className="clearfix"></div>
</div>
<div ref="test" className="testclassname">
</div>
</Modal.Body>
</Modal>
);
}
我的唯一目标是将自定义属性(不幸的是,它不能以 data- 或 aria- 开头,因为它是由第三方定义的div
)ref="test"
当我尝试注入自定义属性时:
someButtonClicked() {
setTimeout(() => {
this.setState({
isModalOpen: true
})
}, 100);
var element = ReactDOM.findDOMNode(this.refs.test);
element.setAttribute('doku-div', 'form-payment');
}
这里元素总是未定义的,所以setAttribute
失败了;如果我去检查元素,ref="test"
则不存在<div>
!有人可以帮我解释为什么模态中缺少这个 ref 吗?