React-选择清除值,同时保留过滤器

2023-12-26

我正在开发一个权限系统,让用户控制谁可以访问/评论/编辑资源,就像您在 Google 云端硬盘上找到的资源一样。我正在使用 React-Select multi 让资源所有者选择他想要授予资源访问权限的用户。

当我单击反应选择显示的选项时,我希望将此选项添加到我的允许用户列表(由另一个组件处理的列表)中。这部分有效,我只是在选择上使用了 onChange 处理程序(如下面的代码所示)。

export default class AddUsersForm extends Component {

  PropTypes = {
    onSubmit: PropTypes.func.isRequired,
    usersList: PropTypes.array.isRequired, // List of all users in the company
    usersInPermissions: PropTypes.array.isRequired, // Users who already have access to the resource
  }

  handleChange(users){
    // Adds new user to the list of allowed users, an updated value for this.props.usersInPermissions will be received
    this.props.onSubmit(users);
  }

  render() {
    return (
      <form>
        <Select
          name="users"
          multi={true}
          options={this.props.usersList.filter(user => !this.props.usersInPermissions.includes(user.id))}
          onChange={(users) => this.handleChange(users)}
        />
      </form>
    );
  }

}

这就是我陷入困境的地方:添加选项后,我想继续显示用户在文本字段中搜索第一个选项时可能使用的过滤器。现在的工作方式是,过滤器被删除,所有选项都显示在下拉列表中。

有没有简单的方法可以使用 React-Select 来实现这一目标?

非常感谢!


这段代码正在运行。也许还有更好的方法。

// ManageUsers
import React, { PropTypes } from 'react';
import AddUserForm from './AddUserForm'

export default class NoMatch extends React.Component {
  constructor(props) {
    super(props)
    this.handleChange = this.handleChange.bind(this);

    let selectedUsers = [ { value: 3, label: 'Three' },
      { value: 4, label: 'Four' } ];

    this.state = {
      selectedUsers: selectedUsers
    }
  }

  handleChange(selected) {
    this.setState({ selectedUsers: selected })
  }

  render() {
    let usersList = [
      { value: 1, label: 'One' },
      { value: 2, label: 'Two' }
    ];

    return (
      <div>Users
        <AddUserForm usersList={usersList} 
         selectedUsers={this.state.selectedUsers} 
         handleChange={this.handleChange} />
      </div>
    );
  }
}
// AddUsersForm
import React, { PropTypes } from 'react';
import Select from 'react-select';
import 'react-select/dist/react-select.css';

export default class AddUsersForm extends React.Component {
 PropTypes = {
  usersList: PropTypes.array.isRequired,
  selectedUsers: PropTypes.array.isRequired,
  handleChange: PropTypes.func.isRequired
 }

 render() {
  return (
   <form>
    <Select
     multi={true}
     options={this.props.usersList}
     value={this.props.selectedUsers}
     onChange={(users) => this.props.handleChange(users)}
    />
   </form>
  );
 }
}

如果你想保留输入的文本,那么你必须在handleChange上设置输入的文本。没有内置函数来保存键入的文本。

 onChange={(users) => this.props.handleChange(users, event)}
handleChange(selected, event) {
let selectedFilter = event.target;
 // then navigated to the input element with Javascript or jQuery
 // and set the value of the input

this.setState({ selectedUsers: selected })
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

React-选择清除值,同时保留过滤器 的相关文章

  • 使用 获取用于 javascript 的 RSA 密钥?

    我的 Web 项目需要一个 RSA 密钥对 虽然有一些库 但我认为依靠浏览器 为了安全性和速度 为我生成密钥是个好主意 是否可以使用注册机或其他浏览器 API 来执行此操作 我不知道如何从注册机获取密钥 它们似乎是在提交时生成的 但我不想将
  • JavaScript 中的“new”关键字是什么?

    The newJavaScript 中的关键字第一次遇到时可能会很混乱 因为人们倾向于认为 JavaScript 不是面向对象的编程语言 它是什么 它解决什么问题 什么时候合适 什么时候不合适 它做了 5 件事 它创建一个新对象 这个对象的
  • Webpack 缺少 CommonsChunk 和 extract-text-webpack-plugin 模块

    我正在跟进Maxime Fabre 的 Webpack 教程 https blog madewithlove be post webpack your bags 我正在尝试获得一个非常简单的 webpack 包 其中包含 1 个入口点和 2
  • 为什么“事件”在 Chrome 中全局可用,而在 Firefox 中则不然?

    在回答另一个问题时 出现了一个与event对象在匿名函数中可用 无需传入 在 Chrome 中 下面的代码工作正常 但 Firefox 会抛出错误 document ready function uspsSideboxTrackingClo
  • 如果浏览器在 asp .net 中关闭,请从浏览器中注销?

    我的要求有点复杂 用户正在使用 Web 浏览器访问数据库 而在访问数据库时 如果用户关闭活动页面而不是注销会话 该会话需要自动注销 有人可以指导我如何做这个吗 我在母版页中使用了jquery onbeforeunload 我收到消息离开页面
  • 缓存 firestore 中 get 的第一个实现

    我希望 firestore 每次都先从缓存中获取数据 根据 Firestore 文档 传递 缓存 或 服务器 选项必须启用相同的功能 下面的例子 db collection cities where capital true get cac
  • 通过 jquery/javascript 在警报或确认对话框中单击“确定”?

    我正在考虑在backbone js 和jquery 中编写一些UI 测试 它们可能不是最好的方法 但这是我正在考虑的事情 通过纯代码自动化测试而无需记录和回放 使用这种方法唯一让我摸不着头脑的是 在某些 用例流程 执行的 中 会出现确认 警
  • jQuery 验证日期范围问题

    我的代码中有很多地方有成对的相关开始和结束日期字段 范围 我需要验证开始日期早于结束日期 我正在使用 jQuery 验证插件 这是我的代码 http jsfiddle net jinglesthula dESz2 http jsfiddle
  • React/Redux bundle.js 太大

    我有一个小型的 React 项目 Webpack生成的bundle js大小为6 3Mb 如何将大小减小到 github webpack config js module exports devtool inline source map
  • 卸载/销毁 Angular 延迟加载组件

    我的设置与此处找到的帖子类似http ify io lazy loading in angularjs http ify io lazy loading in angularjs 处理 Angular 中我的应用程序的各种组件的延迟加载 我
  • Typescript:如何在自定义过滤器中使用角度 $filter

    如何在自定义过滤器中使用 Angular filter 如何注入 filter依赖 module Filters export class CustomFilter public static Factory return function
  • 将 Google 电子表格解析为 Javascript 数组

    我有一个 Google 电子表格 https docs google com spreadsheets d e 2PACX 1vRc8Lx0N wf3f1xAAXkNFUqQjaWPFcde3YjK02gCBqGpUrULwHC6NC0sn
  • React router.push 和 router.replace 之间的区别?

    有什么区别React 路由器推送 and 路由器 替换 路由器历史记录就像一个stack of routes 当您使用router replace 您将覆盖堆栈的顶部 当使用router push 它在顶部添加了一条新路线stack 路由器
  • 如何将函数传递给 JavaScript Web Worker

    我想通过一个 或多个 函数传递postMessage 给网络工作者 因为我无法引用常规文件 为了启动 Web Worker 我将一个对象 URL 从 Blob 创建 传递给Worker构造函数 然后我传递一条消息 但到目前为止还没有在消息中
  • 在 php、ajax 或 javascript 中加载进度?

    任何人都知道如何在系统仍在服务器端获取数据的同时在客户端显示加载进度以及完成的百分比 例如 当我在客户端按下 确定 按钮时 它会调用服务器端从数据库收集数据 整个过程可能需要2到3分钟 如何在客户端显示加载进度 大约加载完成了多少 我怎样才
  • 由于固定导航,增加了 FancyBox v2 的顶部和底部边距

    我目前正在开发一个网站 该网站将来将具有响应能力 该网站主要由图像组成 单击这些图像会加载到 FancyBox 中 FancyBox v2 现在具有响应能力 因此可以在屏幕尺寸发生变化时重新调整图像等的大小 作为我设计的一部分 我有两个固定
  • PhantomJS 网页内存消耗?

    是否有一种编程方式 因为我想在运行时自动执行 方式来查看网页在通过 PhantomJs 运行时使用了多少内存 我也在使用 casperjs 如果这有帮助的话 我已经搜索了很多但没有找到任何方法 PhantomJs 使用 QtWebKit 因
  • 父指令属性更改时子指令不会更新

    这是对这两个问题的后续 在父指令和子指令之间传递参数 https stackoverflow com questions 42814530 pass argument between parent and child directives
  • Angular 2访问组件内的ng-内容

    我怎样才能访问 content 来自组件类本身的组件 我想做这样的事情
  • NodeJS:如何获取服务器的端口?

    您经常会看到 Node 的示例 hello world 代码 它创建一个 Http Server 开始侦听端口 然后执行以下操作 console log Server is listening on port 8000 但理想情况下你会想要

随机推荐

  • 使用模板模板类参数作为参数

    现代 C 设计给出了以下示例 template
  • 通过 Nat-kind 重叠实例

    这个问题实际上是由于尝试将少数数学群实现为类型而出现的 循环群没有问题 实例Data Group其他地方定义 newtype Cyclic n Nat Cyclic cIndex Integer deriving Eq Ord cyclic
  • 缓存最终迭代器 - 好主意还是坏主意?

    一般来说 出于效率和速度的目的 缓存结束迭代器 特别是 STL 容器 是一个好主意吗 例如下面的代码 std vector
  • GitLab 电子邮件通知未发送

    我最近刚刚在 Ubuntu 12 04 服务器上安装了 GitLab v5 0 现在遇到了电子邮件通知问题 我无法让 GitLab 发送任何类型的电子邮件 我有我的config environments production rb使用 se
  • 使用 The Tomes of Delphi 中的红黑树实现的 Promotion() 问题

    我正在使用 Julian Bucknall 在他的著名书中编写的红黑树实现 德尔菲之书 http www boyet com FixedArticles DADSBook html 源代码可以是在这里下载 http www boyet co
  • 如何在CSS中按比例调整图像大小以适应200px x 150px缩略图的尺寸?

    我已经尝试了一些方法 甚至使用 CSS 剪辑 但没有使其按比例适合此处的缩略图http giantmango com arttest2 2510 http giantmango com arttest2 2510 在 CSS 中 最好的方法
  • 在列表框中处理 WPF 中的图像(内存泄漏)

    我有一个列表框 里面有一堆图像 通过数据模板完成 图像是通过设置项目源创建的
  • 如何在 C# 中声明可选类型? [复制]

    这个问题在这里已经有答案了 Java 8 有Optional
  • 有没有办法在 Kotlin 的数据类中嵌套枚举?

    有没有办法在 Kotlin 的数据类中嵌套枚举 data class D val a Any enum class E F G 或者在函数内声明它内联 fun foo enum class E F G doSomething 我找不到有关允
  • ggplot geom_point 忽略未知的美学:文本问题?

    我正在生成 SVG 分面图 我希望将鼠标悬停在点上时出现工具提示 我正在使用一个textggplot geom point 中的美学来制作工具提示文本 产生警告 Warning Ignoring unknown aesthetics tex
  • ActiveRecord 和 Mogoid::Document :关联

    我有一个基于 ActiveRecord 的模型 另一个基于 Mogoid Document 的模型 可以联合起来吗 例如 2 个型号 class User lt ActiveRecord Base has one avatar depend
  • 如何序列化委托

    让我们看一个网格填充的例子 We have Column班级 它有一个代表设置单元格格式 这需要一些Data并将其转换为string 设置单元格格式委托在设计时是未知的 它可能由插件设置 public class ColumnFormatt
  • Java 中的目录监听器

    我有一个应用程序 我想在其中监听对特定目录所做的任何更改 一旦该目录中添加 删除或更新了任何文件 应用程序应该立即对我进行 ping 操作 从 Java 1 7 开始你可以使用手表服务API http docs oracle com jav
  • 从 Flask 视图返回 JSON 响应

    我有一个函数可以使用 Pandas 分析 CSV 文件并生成包含摘要信息的字典 我想将结果作为 Flask 视图的响应返回 如何返回 JSON 响应 app route summary def summary d make summary
  • 以编程方式从 XSD 创建 XML 文件

    我有一个 XSD 文件 我想在运行时基于 XSD 创建一个 XML 文件 我的问题基本上与this one https stackoverflow com questions 307616 xml instance generation f
  • ASP.NET 自动完成下拉列表

    是否有用于 asp net 自动完成 DropDownList 的控件或 Jquery 插件 如果是 请在此处链接示例 我不想使用asp net ajax控制工具包 我不知道这是否是您要找的内容 但这里有一个类似 Facebook 的不错的
  • 在图像 {graphics} 中添加颜色图例

    在这个例子中 我有一个带有颜色的图像 我想知道我们是否可以添加颜色图例 例如 点与z in 8 10 颜色有红色等 x runif 500 0 5 y runif 500 0 5 z floor runif 500 1 10 xyz dat
  • 未找到 AWS CodeDeploy 命令

    尝试部署 Node js 应用程序时出现错误npm command not found in my post install sh安装后脚本 最奇怪的是我运行的 BeforeInstall 脚本npm install g pm2它工作得很好
  • 在 NTFS 中搜索文件

    我们有一个相当大的磁盘阵列 上面大约有 2 3 百万个 XML 文件 磁盘采用 NTFS 格式 我们想使用通配符搜索文件系统 因此 像 SomePartOfTheFilename 这样的内容将是典型的搜索查询 我们正在使用 Net 并且发现
  • React-选择清除值,同时保留过滤器

    我正在开发一个权限系统 让用户控制谁可以访问 评论 编辑资源 就像您在 Google 云端硬盘上找到的资源一样 我正在使用 React Select multi 让资源所有者选择他想要授予资源访问权限的用户 当我单击反应选择显示的选项时 我