美文网首页
高阶函数的应用_1

高阶函数的应用_1

作者: Shiki_思清 | 来源:发表于2020-12-17 12:38 被阅读0次
image.png

ShowDialog.tsx

import React from 'react';
import ReactDOM from 'react-dom';
import { Modal, Button } from 'antd';
import { ModalConfig } from './ModalConfig';

interface Props {
  //   unMount: Function;
}
export function showDialog(WrappedComponent) {
  return class extends React.Component<Props> {
    state = {
      visible: false,
    };

    componentDidMount() {
      this.setState({ visible: true });
    }

    componentWillUnmount() {
      this.setState({ visible: false });
      //   this.props.unMount();
    }

    render() {
      return (
        <>
          <WrappedComponent
            // unMount={unMount}
            visible={this.state.visible}
            setVisible={(bol) => {
              this.setState({ visible: bol });
              //   this.props.unMount();
            }}
          />
        </>
      );
    }
  };
}

showDialog.show = function show(SubModal) {
  const container = document.createElement('div');
  //   document.body.appendChild(container);

  //   function unMount() {
  //     ReactDOM.unmountComponentAtNode(container);
  //     document.body.removeChild(container);
  //   }
  const NewComp = showDialog(SubModal);

  ReactDOM.render(<NewComp />, container);
};

ModalConfig.tsx

import React, { useState } from 'react';
import ReactDOM from 'react-dom';
import { Modal, Button } from 'antd';

interface Props {
  visible: boolean;
  setVisible: Function;
}
export function ModalConfig(props: Props) {
  const { visible, setVisible } = props;

  const handleCancel = (e) => {
    setVisible(false);
  };

  const handleOk = (e) => {
    setVisible(false);
  };

  return (
    <>
      <Modal
        title="测试框"
        width={628}
        bodyStyle={{
          height: 452,
          overflow: 'auto',
        }}
        visible={visible}
        maskClosable={false}
        onCancel={handleCancel}
        footer={[
          <Button key="back" onClick={handleCancel}>
            取消
          </Button>,
          <Button key="submit" type="primary" onClick={handleOk}>
            确认
          </Button>,
        ]}></Modal>
    </>
  );
}

index.tsx

import { showDialog } from './ShowDialog';
import { ModalConfig } from './ModalConfig';

export function videoAnswer() {
  return showDialog.show(ModalConfig);
}

调用

import { videoAnswer } from '../VideoAnswer';
onChange={(e) =>
              e.target.checked ? videoAnswer() : onChangeExtraAction({ code: 'is_video', value: `${e.target.checked}` })
            }>

相关文章

  • Python | 高阶函数基本应用及Decorator装饰器

    一、高阶函数 理解什么是高阶函数?以及高阶函数的基本应用方法 ▲ 高阶函数 在了解什么是高阶函数之前,我们来看几个...

  • 高阶函数的应用_1

    ShowDialog.tsx ModalConfig.tsx index.tsx 调用

  • 高阶函数

    高阶函数,至少满足下面之一: 函数可以作为参数被传递 函数可以作为返回值输出 高阶函数的应用 类型检验 高阶函数实...

  • JS函数柯里化

    在正式聊函数柯里化之前,我这里给大家补充下高阶函数的概念和应用: 1.1、什么是高阶函数?高阶函数英文叫 High...

  • React--高阶组件的使用

    1.高阶函数的基本定义: 2. 高阶组件的定义方式--省略号问题 实际截图: 3.高阶组件的应用-增强props ...

  • Kotlin学习 5 -- 高阶函数

    本篇文章主要介绍以下几个知识点:高阶函数内联函数noinline 与 crossinline高阶函数的应用内容参考...

  • 高阶函数应用

  • Python语言基础之——三大神器

    1.高阶函数 1.函数就是变量 函数就是变量,函数名就是变量名 2.高阶函数 变量可以作为函数参数 实参高阶函数:...

  • Python高阶函数

    本文要点 1.什么是高阶函数 2.python中有哪些常用的高阶函数 什么是高阶函数? 在了解什么是高阶函数之前,...

  • Day10. 高阶组件

    1. 认识高阶函数 什么是高阶组件呢?认识高阶函数.png 高阶函数: 接收一个或多个函数作为输入, 输出一个函数...

网友评论

      本文标题:高阶函数的应用_1

      本文链接:https://www.haomeiwen.com/subject/ryqzgktx.html