当与 debounce、event.persist() 和在父组件中存储值一起使用时,输入不起作用

2024-04-05

我需要一个带有去抖搜索的输入字段,并且值应该从父组件传递。但当从父组件传递值时,它不起作用。正确的实施方法是什么?

代码沙盒示例https://codesandbox.io/embed/debounce-input-owdwj https://codesandbox.io/embed/debounce-input-owdwj

具有去抖功能的文本字段

class MyTextField extends Component {
  search = _.debounce(event => {
    this.props.onChange(event.target.value);
  }, 300);

  handleChangeInput = event => {
    event.persist();

    this.search(event);
  };

  render() {
    return (
      <TextField
        value={this.props.value}
        placeholder="type"
        onChange={this.handleChangeInput}
      />
    );
  }
} 

存储文本字段值的父组件

class Form extends Component {
  state = {
    value: ""
  };

  handleChangeInput = value => {
    this.setState({
      value
    });
  };

  render() {
    return (
      <div>
        <h2>{this.state.value}</h2>
        <MyTextField
          value={this.state.value}
          onChange={this.handleChangeInput}
        />
      </div>
    );
  }
}

这里的问题是您仅在 300 秒后更新组件,这也不会更新输入框。首先,每当有按键时,您需要更新搜索框组件,并且稍后可以在 300 秒后通知家长更改 我已经更新了您的代码参考,请查看https://codesandbox.io/embed/debounce-input-gm50t https://codesandbox.io/embed/debounce-input-gm50t

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

当与 debounce、event.persist() 和在父组件中存储值一起使用时,输入不起作用 的相关文章

随机推荐

  • VKDefault - 三角器未能完全三角化多边形 MapKit

    我遇到了收到警告的问题 VKDefault Triangulator failed to fully triangulate polygon MapKit放大和缩小地图上的特定区域时 我正在从 json 数据创建多边形 该数据可以包含 MK
  • Scikit-learn 的 LabelBinarizer 与 OneHotEncoder

    两者有什么区别 似乎两者都创建了新列 其数量等于特征中唯一类别的数量 然后 他们根据数据点所属的类别将 0 和 1 分配给数据点 下面显示了使用 LabelEncoder OneHotEncoder LabelBinarizer 对数组进行
  • 如何从数据库中获取可为空的 DateTime

    我的 SQL Server 数据库包含可为空的 DateTime 值 如何将它们转换为 C 应用程序中可为 null 的 DateTime 对象 这就是我认为的样子 但事实并非如此 DateTime dt DateTime sqldatar
  • Android:在异步任务期间处理后退按钮

    我有一个显示列表视图的活动 单击项目时 将启动第二个活动 该活动运行一个 AsyncTask 根据单击的项目获取远程 URL 解析结果 然后将这些结果显示到另一个列表视图中 当异步任务运行时 我有一个 正在加载 视图 仅显示图像和文本 问题
  • 如何检测浏览器是否支持flash?

    我的网站只有两个版本 一种是针对支持 Flash 的设计 如桌面设备 另一种是针对移动设备的设计 我只是想知道我是否可以检测到 如果是真的 支持 他们将保持相同的网站假设是http mywebsite com但链接会显示http myweb
  • Java 浮点意外圆角化

    我正在使用浮点常量并将对象私有浮点变量设置为下面的浮点常量 但是当对象输出它设置的值时 它会四舍五入浮点中的最后一位数字 private final float RF FREQUENCY 956 35625f Object o new Ob
  • 如何检查一个控件是否是另一个控件的子控件? “Control.IsChildOf”

    我有 3 个面板
  • 蜡染:Linux 上的 svg 到 pdf(无 X 服务器)

    类似于中的方法将 SVG 转换为 PDF https stackoverflow com questions 6875807 convert svg to pdfsvg2pdf 转换在 Windows 下成功运行 并且可以在生成的 pdf
  • 如何在 ExtJs 中添加复制到剪贴板功能?

    如何在 ExtJs 中添加复制到剪贴板功能 它在 IE 浏览器中工作正常 但在 Firefox 中不行 还需要进行哪些更改才能使其在 FF 浏览器中工作 Code function selectCopy txt txtId Ext getC
  • 为什么 Android Studio 说“未收到测试事件”?

    我正在尝试在我的 Android 应用程序中进行单元测试 这是我正在做的简单测试教程 import static org junit Assert import org junit Test import org junit runner
  • Linux 下签名的可执行文件

    出于安全原因 最好在执行之前检查代码的完整性 避免软件被篡改由攻击者发起 所以 我的问题是 如何在Linux下对可执行代码进行签名并仅运行受信任的软件 我读过范杜姆的作品et al Linux 签名可执行文件的设计和实现 以及 IBM 的T
  • 带有 COUNT 帮助的 SQL 子查询

    我有一个有效的 SQL 语句 SELECT FROM eventsTable WHERE columnName Business 我想将其添加为子查询 COUNT Business AS row count 我该怎么做呢 这可能是最简单的方
  • Visual Studio Code 像 HTML 一样自动关闭标记和缩进 XML

    我开始使用 Visual Studio Code for HTML 和 CSS 因为在我看来 它似乎是一个不错的编辑器 除了这个小问题 当我开始使用它时 我必须获得一个扩展才能获得自动结束标签 我发现的所有扩展似乎都以相同的方式执行此操作
  • Visual Studio Team Services REST API 的 AJAX 跨域问题

    我正在尝试为 Visual Studio Team Services REST API 编写一个 JavaScript 客户端 该客户端将 AJAX 请求发送到我们自托管的 Team Foundation Server 2015 但我面临跨
  • 状态栏高度始终返回0

    打电话时MediaQuery of context padding top在父小部件中 ProductsOverviewScreen 返回的值符合预期 24 但是当从嵌套小部件调用相同的属性时 ProductsGrid 我们正在谈论的父级的
  • 是否可以使用 Angular 的 $http 服务指定参数顺序?

    在我的 Angular 应用程序中 我有一项服务利用 http从服务器检索数据 服务器端点使用 HMAC 身份验证 并期望查询字符串参数按 URL 上的特定顺序排列 角度排序 http构建 URL 时的参数 https github com
  • Android-使用DexClassLoader加载apk文件

    我碰壁了 任何帮助 将不胜感激 我有一个应用程序 我想使用 DexClassLoader 加载另一个 apk 文件 这是我的代码 DexClassLoader dLoader new DexClassLoader sdcard downlo
  • 如何摆脱 PowerShell 的编码地狱?

    gt cat foo txt abc gt cat foo txt md5sum c13b6afecf97ea6b38d21a8f5167fa1e gt md5sum foo txt b79545611b3be30f90a0d21ef69b
  • Flutter中如何在选项卡之间发送数据?

    我有一个带有 2 个选项卡的 Flutter 应用程序 一个选项卡管理和接收连续的数据流 另一个选项卡显示传入的数据 如何将数据从第一个选项卡传递到第二个选项卡 我看到的大部分帖子都是关于父子之间传递数据 而不是子子之间传递数据 我会用吗G
  • 当与 debounce、event.persist() 和在父组件中存储值一起使用时,输入不起作用

    我需要一个带有去抖搜索的输入字段 并且值应该从父组件传递 但当从父组件传递值时 它不起作用 正确的实施方法是什么 代码沙盒示例https codesandbox io embed debounce input owdwj https cod