react中的state中的modal的setstate实现方式



  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ReactModal组件可以用于实现弹窗、提示框等功能。下面是一个简单的Modal组件的封装示例: ```jsx import React from 'react'; import ReactDOM from 'react-dom'; const modalRoot = document.getElementById('modal-root'); class Modal extends React.Component { constructor(props) { super(props); this.el = document.createElement('div'); } componentDidMount() { modalRoot.appendChild(this.el); } componentWillUnmount() { modalRoot.removeChild(this.el); } render() { const { children, onClose } = this.props; return ReactDOM.createPortal( <div className="modal"> <div className="modal-content"> {children} <button onClick={onClose}>Close</button> </div> </div>, this.el ); } } export default Modal; ``` 在上述代码,我们定义了一个名为Modal的组件,并使用ReactDOM.createPortal方法将其渲染到modalRoot实现Modal的弹出效果。Modal组件接收两个props,分别是children和onClose。其,children用于传递Modal的内容,onClose用于处理Modal的关闭事件。 使用Modal组件时,我们可以在父组件定义一个state,用于控制Modal的显示和隐藏: ```jsx import React from 'react'; import Modal from './Modal'; class App extends React.Component { state = { showModal: false } handleOpenModal = () => { this.setState({ showModal: true }); } handleCloseModal = () => { this.setState({ showModal: false }); } render() { const { showModal } = this.state; return ( <div> <button onClick={this.handleOpenModal}>Open Modal</button> {showModal && <Modal onClose={this.handleCloseModal}> <h2>Modal Title</h2> <p>Modal Content</p> </Modal> } </div> ); } } export default App; ``` 在上述代码,我们在父组件定义了一个showModal状态,用于控制Modal的显示和隐藏。当用户点击“Open Modal”按钮时,我们将showModal设置为true,从而显示Modal组件。当用户点击Modal的“Close”按钮时,我们调用handleCloseModal方法,将showModal设置为false,从而隐藏Modal组件。 通过封装Modal组件,我们可以在React应用方便地实现弹窗、提示框等功能,并且可以灵活地控制Modal的显示和隐藏。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值