首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

React react-bootstrap -如何从外部组件关闭模式窗口

React是一个由Facebook开发的用于构建用户界面的JavaScript库。它通过组件化的方式使得构建复杂的UI变得简单而高效。React具有高性能和灵活性,适用于单页面应用和大型Web应用的开发。

react-bootstrap是一个基于React的UI组件库,它提供了一组丰富的可重用的组件,可以帮助我们快速构建漂亮的界面。它是基于Bootstrap框架进行封装的,同时结合了React的特性,使得使用它能够更好地与React进行整合。

要从外部组件关闭模态窗口,可以使用React中的状态来控制模态窗口的显示和隐藏。以下是一个简单的示例代码:

首先,在父组件中设置一个状态来控制模态窗口的显示与隐藏:

代码语言:txt
复制
import React, { useState } from 'react';
import { Button, Modal } from 'react-bootstrap';

function ParentComponent() {
  const [showModal, setShowModal] = useState(false);

  const handleCloseModal = () => {
    setShowModal(false);
  };

  const handleShowModal = () => {
    setShowModal(true);
  };

  return (
    <>
      <Button variant="primary" onClick={handleShowModal}>
        打开模态窗口
      </Button>

      <Modal show={showModal} onHide={handleCloseModal}>
        <Modal.Header closeButton>
          <Modal.Title>模态窗口标题</Modal.Title>
        </Modal.Header>
        <Modal.Body>模态窗口内容</Modal.Body>
        <Modal.Footer>
          <Button variant="secondary" onClick={handleCloseModal}>
            关闭
          </Button>
          <Button variant="primary" onClick={handleCloseModal}>
            保存
          </Button>
        </Modal.Footer>
      </Modal>
    </>
  );
}

export default ParentComponent;

在父组件中,我们使用useState来定义一个名为showModal的状态,初始值为false。handleCloseModal函数用于关闭模态窗口,它会将showModal状态设置为false。handleShowModal函数用于打开模态窗口,它会将showModal状态设置为true。

然后,在父组件的渲染方法中,我们使用Button组件来触发打开模态窗口的动作,并使用Modal组件来创建模态窗口。通过设置Modal组件的show属性来控制模态窗口的显示与隐藏,当show为true时,模态窗口显示,当show为false时,模态窗口隐藏。在Modal组件中,我们通过设置onHide属性为handleCloseModal函数,使得点击模态窗口上的关闭按钮时,模态窗口会自动调用handleCloseModal函数来关闭。

这样,我们就可以在外部组件中通过调用父组件的关闭模态窗口的函数来关闭模态窗口。

关于React和react-bootstrap的更详细的介绍和使用方法,您可以参考以下链接:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Reactjs+BootStrap开发自制编程语言Monkey的编译器:创建简易的页面IDE

接着执行以下命令: npm install --save react-bootstrap 上面的命令用来安装试用与react框架的boostrap UI控件库,我们将使用它来开发我们Monkey编程语言的...‘悉尼歌剧院’,由此可见react框架通过组件化的方式构建项目的模式是相当灵活且强大的。...document.getElementById('root')); registerServiceWorker(); 我们把App换成了MonkeyCompilerIDE,我们先把代码的具体含义放一放,先看看如何增加一个...在MonkeyCompilerIDE.js中,第一行我们react库中引入React和Component两个组件: import React , {Component} from 'react' import...* as bootstrap from 'react-bootstrap' 第二行我们把react-bootstrap组件库中所有组件全部加载进来,并给予一个统称叫bootstrap,如果我想使用其中的一个组件例如

4.6K20
  • 如何掌握高级的React设计模式: 复合组件【译】

    -1-dd495fa1823) 为了庆祝 React 16.3 的正式发布,我决定分享我最近使用的一些技术,这些技术彻底改变了我创建 React 组件的方法。...在本系列的第一部分中,我们将探讨一种名为“复合组件”的设计模式 使用复合组件设计模式 首先,让我们来看看 Stepper 组件。...那么现在,我们不需要再到处引入 Progress 和 Steps 组件,而是直接 Stepper 组件中引用它们: import React, { Component } from 'react';...所以我们用 props.children 对象来替换这 4 个 Stage 组件并遍历子项添加所需的属性,然后在 Stepper 类中添加一个 Stage 静态方法,供外部直接引用 Stage 。...在本系列的第2部分中,我将探讨如何实现 context API 以便能够在组件树中的任何位置传递属性,这样无论 Stepper.Steps 组件位于何处,它始终都能够访问 stage 属性。

    84610

    如何掌握高级的React设计模式: 复合组件【译】

    Components 为了庆祝 React 16.3 的正式发布,我决定分享我最近使用的一些技术,这些技术彻底改变了我创建 React 组件的方法。...在本系列的第一部分中,我们将探讨一种名为“复合组件”的设计模式 使用复合组件设计模式 首先,让我们来看看 Stepper 组件。...那么现在,我们不需要再到处引入 Progress 和 Steps 组件,而是直接 Stepper 组件中引用它们: import React, { Component } from 'react';...所以我们用 props.children 对象来替换这 4 个 Stage 组件并遍历子项添加所需的属性,然后在 Stepper 类中添加一个 Stage 静态方法,供外部直接引用 Stage 。...在本系列的第2部分中,我将探讨如何实现 context API 以便能够在组件树中的任何位置传递属性,这样无论 Stepper.Steps 组件位于何处,它始终都能够访问 stage 属性。

    1.4K10

    你要的 React 面试知识点,都在这了

    什么是声明式编程 声明式编程 vs 命令式编程 什么是函数式编程 什么是组件设计模式 React 是什么 React 和 Angular 有什么不同 什么是虚拟DOM及其工作原理 什么是JSX 组件和不同类型...什么是错误边界 什么是 Fragments 什么是传送门(Portals) 什么是 Context 什么是 Hooks 如何提高性能 如何在重新加载页面时保留数据 如何React中调用API 总结...它遵循组件设计模式、声明式编程范式和函数式编程概念,以使前端应用程序更高效。它使用虚拟DOM来有效地操作DOM。它遵循从高阶组件到低阶组件的单向数据流。 React 与 Angular 有何不同?...外部样式表 在此方法中,你可以将外部样式表导入到组件使用类中。 但是你应该使用className而不是class来为React元素应用样式, 这里有一个例子。...中,我们需要有一个父元素,同时组件返回React元素。

    18.5K20

    React 设计模式 0x4:样式

    学习如何轻松构建可伸缩的 React 应用程序:样式 # 组件样式 在每个 Web 应用程序中,样式化非常重要,因为样式使其对用户非常有吸引力,并为用户提供良好的体验。.../引用 CSS 外部 CSS 是网站或 Web 应用程序样式化的一种方式,它在文件中编写所有样式,并在应用程序或组件内引用它。... ); } export default Example; 优点: 编写简单 保持组件干净,不会混合样式和组件 可以重用样式 缺点: 加载速度慢,因为需要加载额外的文件...可以通过以下方式安装 Bootstrap: npm install bootstrap react-bootstrap 使用: import React from "react"; import {...Button } from "react-bootstrap"; import "bootstrap/dist/css/bootstrap.min.css"; function Example()

    1.3K20

    工程化角度讨论如何快速构建可靠React组件

    本文并不是要谈如何去写一个 React 组件,这一块已经有不少精彩的文章。...但 webpack 默认会将依赖也打包进行,为了避免这点,你需要将这些依赖一一配置成为 external,这就告诉了 webpack 它们是外部引用的,可以不用打包进来。...测试自动化 上述讲的都跟如何提升开发效率有关的,即满足 “快速” 这个目标,对 ”可靠“ 有一定帮助,如稳定的流程和良好的代码规范,但并没有非常好地保证组件地稳定可靠。...但这里举的例子, react-list-scroll 组件,一个 React 的滚动列表组件,碰巧遇到一种比较难模拟的情况,就是对 scroll 事件的模拟。这里想展开说一下。...,一个UI组件,共两个示例,对照着脚手架的文档,目录规范、开发流程、发布都写得较为清楚,大家开发组件的时候,可以根据情况做些调整。

    1.9K60

    介绍个前端框架,不是Bootstrap!

    ,抛开文字看看效果,这就是Material Design的效果 materializecss代码举例 举个多选的例子吧 这里就只贴一下那个多选框需要的代码 它实现的机制和Bootstrap的js组件一样...react-materialize 好看归好看的,materializecss可是基于JQuery的Dom操作实现的这种与众不同的体验,问题是现在谁还用JQuery操作Dom呀,自己要集成它到React...中一定要注意React Virtual Dom对Dom的管理和materializecss中JQuery的Dom操作之间的冲突。...所以我们更倾向于寻求类似react-bootstrap这种封装方案,没错就这个react-materialize(https://github.com/react-materialize/react-materialize...前端的外延有几个大块:后端-如何更好地实现业务;项目管理-如何按时按预期交付;测试-如何保证交付质量;产品交互及美术-如何保证用户体验。就是最后这一点,美感对前端来讲很重要。

    2.2K100

    React中的模式对话框 转

    能够处理鼠标和键盘事件,例如关闭窗口事件。 接受外部传入一个回调函数,当用户进行某些操作的时候调用他,例如点击“确定”或“取消”按钮。 接受外部参数,可以设定大小、文字、处理器等等。...在React中有三种方式实现模式对话框: 使用一个常规的组件作为一个模式对话框的包装组件,然后将我们自定义的内容作为子组件传递给模式对话框。...例如:https://github.com/tajo/react-portal 将模式对话框作为整个组件结构中的顶层组件(根元素的子组件),通过全局的数据来控制他显示或隐藏。...全局数据流控制模式对话框 实际上就是用flux或redux的方式去控制对话框显示或关闭。如果之前用过flux之类思路的工具,后面的内容分分钟就理解了。 先看下模式对话框的组件结构: ?...,用来显示模式对话框的效果,可以直接使用https://github.com/reactjs/react-modal或者自己实现,如下是一个模式框的包装组件: import React from 'react

    2.2K30

    如何 0 到 1 实现一个支持排序、查找、分页的表格组件React版)

    我们每天有可能都在与数据列表打交道,比如列表的分页、查找列表(搜索查询)、按照指定的列升序降序排列这些需求,你可能再尝试使用 react-table or Ant Design table 这样的组件完成这些需求...本案例将使用 React 进行介绍(更多讲解其实现的原理和步骤,你可以用其他框架进行实现),具体列表如下图所示,有姓名、年龄、是否经理人、入职日期这几列,我们可以在各列表头下面的输入框进行模糊搜索内容,...开始之前,我们在来总结下项目的需求: 支持列表的分页 支持字符串、布尔值、数字及日期的升序和倒序排列 支持字符串、布尔值、数字和日期的数据查询 本案例不会借助其他的第三方组库(除了基础的React),我们...0 到 1 开始构建我们的列表组件。...end : `${beginning} - ${end}`} of {count} ) } 这是分页最基础的功能,你可以在此基础上,根据自己组件的需求,去完善此分页组件的样式

    2.5K20

    理解 React Hooks

    这在处理动画和表单的时候,尤其常见,当我们在组件中连接外部的数据源,然后希望在组件中执行更多其他的操作的时候,我们就会把组件搞得特别糟糕: 难以重用和共享组件中的与状态相关的逻辑,造成产生很多巨大的组件...复杂的模式,如渲染道具和高阶组件。 由于业务变动,函数组件不得不改为类组件。 这时候,Hooks就派上用场了。 Hooks 允许我们将组件内部的逻辑,组织成为一个可复用的隔离模块。...借用 @Sunil Pai 的两张图来说明这个问题: [image.png] [image.png] React Hooks 中体验出来的是 React 的哲学在组件内部的实现,以前我们只在组件组件直接体现...Custom Hooks 自定义组件 接着上面的监听窗口大小的代码,我们接着讲自定义 hooks, 证明 react hooks 是怎么使到组件内的逻辑可复用的。...那么React与此有什么关系呢? 让我们了解这在React内部如何工作。 以下内容可在执行上下文中用于呈现特定组件。 这意味着此处存储的数据位于正在渲染的组件之外。

    5.3K140

    前端学习资料整理

    React(创建虚拟dom、给数据,挂载(生成真实dom),中间有数据更新,然后 销毁()、整个流程就是生命周期) React 的核心思想是:封装组件  各个组件维护自己的状态和 UI...组件 React 应用都是构建在组件之上 props 是组件包含的两个核心概念之一,另一个是 state(这个组件没用到)。...state 有更改的时候,React 会自动调用组件的 render 方法重新渲染整个组件的 UI 当然如果真的这样大面积的操作 DOM,性能会是一个很大的问题,所以 React 实现了一个Virtual...5、严格模式与混杂模式 —— 如何触发这两种模式,区分它们有何意义。...jQuery 的 slideUp动画 ,如果目标元素是被外部事件驱动, 当鼠标快速地连续触发外部元素事件, 动画会滞后的反复执行,该如何处理呢?

    3.5K20

    reactvue 组件设计方法原则

    哪些情况需要整合一套组件库 1)从业务上看,当业务达到一定规模后,很多地方需要复用 2)设计上看,产品要遵循一定的设计规范来保持统一性 3)开发上看,对开发效率要求高,需要快速迭代和响应开发需求...一个抽屉(Drawer)组件会有如下需求点: 1>  能控制抽屉是否可见 2>  能手动配置抽屉的关闭按钮 3>  能控制抽屉的打开方向 4>  关闭抽屉时是否销毁里面的子元素(这个问题是5>  ...就如上面反模式中使用 prop 初始化组件状态一样,我们不允许组件内部的状态来源于props然后又受组件内部setState的控制。...尽量保持: 1)组件单方面接收props的变量,但不改变它; 2)组件内部维护state变量,外部组件不改变它。...传递 提供数据和行为给容器组件或者展示组件 对第三方没有任何依赖,比如store 或者 flux action 调用flux action 并且提供他们的回调给展示组件 不要指定数据如何加载和变化 作为数据源

    2K30

    NPM 组件你应该知道的事

    开发一个 npm 组件, 你是否了解需要对外导出什么格式的代码?如何让 npm 组件体积尽可能小?...整篇文章按照如下目录进行讲解: 为何需要打包 组件打包输出格式 如何打包 esm 模式代码(感兴趣选读) 减少组件打包体积的最佳实践 为何需要打包 首先,这里的打包概念解释一下, 只要有输出到新目录,...webpack 如何打包 esm 模式 这里不讲 rollup , 毕竟写一个 target 就可以解决了。...node_modules 不安装 react,同时指定组件库使用方需安装的 react/reactDOM 的版本。...尽可能提供 esm 模式,并且如果这个组件没有影响外部变量时,设置 sideEffect 为 false, 让使用方可以最大的 tree-shaking 。

    1.6K20
    领券