导语
react children初步理解
编辑
核心父组件
<BaseImgPreview> {(modal) => ( <img style={{ width: '100%', height: '70px' }} src={record.activityImg} onClick={() => modal.show(record.activityImg)} /> )} </BaseImgPreview>
核心子组件
import React, { Component, Fragment } from 'react'; import { Modal } from 'antd'; export default class BaseImgPreview extends Component { constructor(props) { super(props); this.state = { visible: false, previewImage: '', }; } show = (previewImage) => { this.setState({ visible: true, previewImage }); }; hide = () => { this.setState({ visible: false }); }; // Modal Ok事件 handleOk = () => { this.setState({ visible: false }); }; render() { const { visible, previewImage } = this.state; const { children, modalProps = {}, title } = this.props; return ( <Fragment> {children({ visible: visible, show: this.show, hide: this.hide, })} <Modal title={title ? title : '查看图片'} maskClosable={false} visible={visible} onOk={this.handleOk} onCancel={this.hide} width={1000} footer={null} {...modalProps} > <div style={{ width: '100%', display: 'flex', alignItems: 'center', justifyContent: 'center', }} > <img alt="example" style={{ maxHeight: '700px', objectFit: 'cover', maxWidth: '90%' }} src={previewImage} /> </div> </Modal> </Fragment> ); } }
核心归纳
1首先父组件得代码
style={{ width: '100%', height: '70px' }}
src={record.activityImg}作为回显值得一个使用
2点击事件表示组件得一个传参
onClick={() => modal.show(record.activityImg)也就是对应得子组件里面的一个传参
3子组件做的是自己本身的一个回显操作 大概就是这样
运行结果