javascript - 从组件打开模态框

标签 javascript reactjs

我正在开发一个需要显示和隐藏模式的组件。

这就是我在 React 的 render 方法中所拥有的

    <div style={{visibility : this.state.displayModal}}>
      <p>Pop up: Bet Behind Settings</p>
    </div>
    <button onClick={this._openModal}>CLICK</button>

这是函数

  _openModal = () => {
    if (this.state.displayModal === 'hidden') {
      this.setState({
        displayModal : 'visible',
      })
    } else {
      this.setState({
        displayModal : 'hidden',
      })
    }
  }

我主要关心的是,如何以更优雅的方式设置状态,或者这应该是这样做的方法?

这里是完整的代码

constructor (props) {
    super(props);
    this.state = {
      displayModal : 'hidden',
    }
  }

  render () {

    return (
      <div style={{visibility : this.state.displayModal}}>
          <p>Pop up: Bet Behind Settings</p>
      </div>
      <button onClick={this._openModal}>CLICK</button>
    )
  }

  _openModal = () => {
    if (this.state.displayModal === 'hidden') {
      this.setState({
        displayModal : 'visible',
      })
    } else {
      this.setState({
        displayModal : 'hidden',
      })
    }
  }

那么,以 React 的方式弹出这个窗口应该是怎样的。

最佳答案

我认为这是一个很好的方法。但如果将 displayModel 设置为 bool 值,则会更加简洁:

_toggleModal = () => this.setState({displayModal: !this.state.displayModal})

关于javascript - 从组件打开模态框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33657442/

相关文章:

reactjs - 三元条件 - 尝试添加类错误

javascript - 使用javascript进行丢包测试

javascript - iScroll 使其他 onclick 在 iOS 上停止工作

javascript - 由于 SSR,Reactotron 无法与 NextJS 一起使用

forms - React formik - 在http请求后用数据填充表单输入

javascript - ReactJS 区分来自多个组件的点击。

node.js - 从 react 中获取 API 向我发送错误的 URL

javascript - 传单错误 : Invalid LatLng object: ( , 未定义)

javascript - 调整侧边菜单

javascript - 如何在单个 html 文件中添加灯箱?