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

React setState 不更新状态

React setState 不更新状态

侃侃无极 2021-05-30 14:51:36
我目前在我的项目中使用 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 回答

?
牧羊人nacy

TA贡献1862条经验 获得超7个赞

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

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


查看完整回答
反对 回复 2021-06-03
?
婷婷同学_

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

  1. 缺少extends React.Component类声明。

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


查看完整回答
反对 回复 2021-06-03
  • 2 回答
  • 0 关注
  • 146 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信