如何使用 React-Bootstrap 捕获下拉列表的值

发布日期:2026-07-15 11:02:03   来源 : 杭州电子商务研究院    浏览量 :10
杭州电子商务研究院 发布日期:2026-07-15 11:02:03  
10

介绍

React 的 DOM 处理能力与实用的 UI 相结合,总能让最终用户感到满意。得益于大量开源软件包,React 开发人员现在可以轻松地将任何 UI/UX 库(如 Bootstrap(最流行的 CSS 框架之一))与单页 React 应用程序集成。作为一种即兴创作,Bootstrap 的基于组件的库在与这些前端框架配合使用时更受欢迎。由于其组件架构,每个 UI 组件都被视为 React 组件本身。每个 UI 组件(如表单、输入、工具提示、下拉菜单、模式等)都是 React Bootstrap 中基于 React 的独立组件。本指南将向您展示如何使用 React Bootstrap 为您的表单构建下拉列表并在前端捕获它们的值。

onSelect 事件

就像onChange事件监视输入字段的变化一样,onSelect事件在元素中选择某个值后发生。下拉列表可以更接近常规输入字段,因为在 shell 下,它们都旨在从用户那里获取一些值。要在用户动态更改这些选定值时监听它们,onSelect事件就派上用场了。

onSelect 事件处理程序

在设置onSelect事件来监视值的选择之后,下一步是将动态数据存储在某个地方。为此,每次触发事件时都会调用事件处理程序或简单的 JavaScript 函数,并使用事件对象提取数据。在这种情况下,使用 props 会变得更简单。

执行

设置

确保您的机器上安装了 Nodejs 和 npm(至少版本 8 或更高版本)以及代码编辑器和 Web 浏览器(最好是 Chrome 或 Firefox)。

使用 create-react-app 创建一个新项目:

      npx create-react-app react-bootstrap-dropdown
    

安装 React Bootstrap

在根目录中,运行以下命令来安装 React Bootstrap 库。

      npm install react-bootstrap bootstrap
    

这将在项目内安装 Bootstrap 和 React Bootstrap。

清理模板

通常,一个单独的表单组件应该可以处理所有事情,但为了简洁起见,我们将所有代码放在App.js中。从App.js中删除徽标、App.css 及其所有导入。清除应用程序组件内的入门模板。您的App.js应如下所示:

      import React from 'react';

function App() {
  return (
    <div className="App">
      <h2>Hello</h2>
    </div>
  );
}

export default App;
    

添加下拉组件

为了使常规 Bootstrap 样式正常工作,请导入顶部的 Bootstrap 样式:

      import 'bootstrap/dist/css/bootstrap.min.css';
    

以上相当于在index.html文件中添加 Bootstrap CDN。现在react-bootstrap导入DropdownButtonDropdown

      import DropdownButton from 'react-bootstrap/DropdownButton';
import Dropdown from 'react-bootstrap/Dropdown'
    

在App.js中的 DOM 上呈现它们

      ....
     <DropdownButton
      alignRight
      title="Dropdown right"
      id="dropdown-menu-align-right"
    
        >
              <Dropdown.Item eventKey="option-1">option-1</Dropdown.Item>
              <Dropdown.Item eventKey="option-2">option-2</Dropdown.Item>
              <Dropdown.Item eventKey="option-3">option 3</Dropdown.Item>
              <Dropdown.Divider />
              <Dropdown.Item eventKey="some link">some link</Dropdown.Item>
      </DropdownButton>
....
    

测试 UI

要查看根目录内的 UI,请运行:

      npm start
    

这将启动本地开发服务器(通常在端口 3000 上),您可以看到下拉按钮以及下拉字段

从下拉菜单中获取值

接下来,附加一个在触发onSelect函数时触发的handleSelect函数。将此事件作为prop放在DropdownButton组件内,并创建一个handleSelect函数,该函数接收事件对象并将其记录到控制台。

      ....
 const handleSelect=(e)=>{
    console.log(e);
  }
  ....
   <DropdownButton
      alignRight
      title="Dropdown right"
      id="dropdown-menu-align-right"
      onSelect={handleSelect}
        >
   ....
    

单击字段可查看控制台上显示的字段值。太棒了!您已成功捕获 React Boostrap Dropdown 组件中下拉列表的值。

将捕获的值存储在状态中

对于更实际的用例,您可能希望对这个捕获的值执行某些操作。前端的组件应该将其存储在某个地方,以便可以将其发送到数据库或某个后端。为应用程序组件设置状态,并将下拉列表中选定的值存储在状态变量中。为了避免更改现有代码,请使用钩子将状态数据存储在功能组件中。

      import React,{useState} from 'react';
....


function App() {
  const [value,setValue]=useState('');
  const handleSelect=(e)=>{
    console.log(e);
    setValue(e)
  }
 
  return (
    ...
      <h4>You selected {value}</h4>
    </div>
  );
}

export default App;
    

value是一个状态变量setValue是设置此状态变量的异步函数。为此,从 React导入useState钩子。在handleSelect函数中调用setValue将状态变量设置为从下拉列表中选择的值。最后,在 JSX 中的 DOM 上输出当前状态值。

尝试选择另一个值并注意 DOM 如何响应状态变化以动态显示所选值。

最后,你的App.js应该如下所示:

      import React,{useState} from 'react';
import 'bootstrap/dist/css/bootstrap.min.css';
import DropdownButton from 'react-bootstrap/DropdownButton';
import Dropdown from 'react-bootstrap/Dropdown'


function App() {
  const [value,setValue]=useState('');
  const handleSelect=(e)=>{
    console.log(e);
    setValue(e)
  }
  return (
    <div className="App container">
      
      <DropdownButton
      alignRight
      title="Dropdown right"
      id="dropdown-menu-align-right"
      onSelect={handleSelect}
        >
              <Dropdown.Item eventKey="option-1">option-1</Dropdown.Item>
              <Dropdown.Item eventKey="option-2">option-2</Dropdown.Item>
              <Dropdown.Item eventKey="option-3">option 3</Dropdown.Item>
              <Dropdown.Divider />
              <Dropdown.Item eventKey="some link">some link</Dropdown.Item>
      </DropdownButton>
      <h4>You selected {value}</h4>
    </div>
  );
}

export default App;
    

如果你收到任何警告或错误,你可以通过更新package.json文件并运行命令npm i来使用本指南中使用的 React-Bootstrap 的精确版本:

      ....
"bootstrap": "^4.4.1",
"react-bootstrap": "^1.0.1",
....
    

结论

对于新手开发人员来说,基于组件的库通常看起来令人生畏和畏惧,但在实际使用中,它们可以提高可读性并减少不必要的代码行。可以使用 React-Bootstrap 方便地构建受控表单组件,尤其是当表单字段需要验证或在提交时必须发送到数据库时。此外,在您的应用中使用 UI 组件肯定会帮助您更快地编写功能代码,因为内置组件使用 props 在后台处理大量典型的 JavaScript。

了解更多

探索 Pluralsight 的这些 React 课程以继续学习:

以上内容来自杭州电子商务研究院推送
关注
关于我们
热门推荐
合作伙伴
免责声明:本站部分资讯来源于网络,如有侵权请及时联系客服,我们将尽快处理
Copyright © 2025-2027 ToB产业网址导航 公安备案 浙公网安备33010602013138号 浙ICP备16025413号-9
支持 反馈 关注 数据