为了账号安全,请及时绑定邮箱和手机立即绑定

React setState不更新状态

React setState不更新状态

慕妹3146593 2019-04-25 18:15:40
我目前在我的项目中使用react-modal,我有可能从其他组件打开和关闭它。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}/>       }     }由于上述问题,我打开它后无法关闭模态。请帮我解决这个问题。谢谢你的帮助。
查看完整描述

2 回答

?
动漫人物

TA贡献1815条经验 获得超10个赞

  1. extends React.Component在课堂申报中缺席。

  2. 缺少super(props);构造函数中的调用。


查看完整回答
反对 回复 2019-05-17
?
青春有我

TA贡献1784条经验 获得超8个赞

  • 请在getDerivedStateFromProps上调试新的派生状态。

  • 另外,为什么不在ReportModal组件中处理相同的问题,回调似乎过度工作


查看完整回答
反对 回复 2019-05-17
  • 2 回答
  • 0 关注
  • 2189 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号