我目前在我的項(xiàng)目中使用react-modal,我有可能從其他組件打開(kāi)和關(guān)閉它。class MainComponent {
constructor() {
this.state = {reportOpen: false};
}
closeReport = (e) => {
this.setState({reportOpen: false}, () => console.log(this.state.reportOpen)); // This line print true !!!
}
render() {
return (
<Button onClick={(e) => this.setState({reportOpen: true})}/>
<ReportModal isOpen={this.state.reportOpen} onClose= . {this.closeReport}/>
)
}}// Modal
class ReportModal {
static getDerivedStateFromProps(nextProps, prevState) {
if (nextProps.isOpen !== prevState.isOpen) {
return ({isOpen: nextProps.isOpen});
}
else {
return null;
}
}
render() {
return <Modal isOpen={this.state.isOpen}
onRequestClose={this.props.onClose}
shouldCloseOnOverlayClick={true}
shouldCloseOnEsc={true}/>
}
}由于上述問(wèn)題,我打開(kāi)它后無(wú)法關(guān)閉模態(tài)。請(qǐng)幫我解決這個(gè)問(wèn)題。謝謝你的幫助。
React setState不更新?tīng)顟B(tài)
慕妹3146593
2019-04-25 18:15:40