当前位置: 首页 > 知识库问答 >
问题:

如何使用React本机范围滑块在触摸结束时设置状态

越季萌
2023-03-14

我正在使用rn范围滑块包(https://www.npmjs.com/package/rn-range-slider)我目前正在使用onValueChanged道具,如下所示:

<RangeSlider
...otherProps
onValueChanged={(low, high, fromUser) => {
                setSelectedTime(low);
              }}
/>

问题是,这会为每个步骤设置状态,例如,当从30滑动到80时,会为每个步骤添加设置状态(在我的情况下,步骤=5),因此30、35、40。。。80

我只想在用户从滑块释放手指时设置状态,即最终数字。有一个名为“onTouchEnd”的回调属性,但在上面的代码示例中,当我将其替换为“onValueChanged”时,它给出了错误:

错误:对象作为React子对象无效(找到:具有键{dispatchConfig、_TargetList、_dispatchListeners、_dispatchInstances、类型、目标、currentTarget、eventPhase、气泡、可取消、时间戳、defaultPrevented、isTrusted、nativeEvent、isDefaultPrevented、isPropagationStopped}的对象)。如果要呈现子对象集合,请改用数组。

共有1个答案

顾高翰
2023-03-14

不幸的是,您不能使用onTouchEnd()回调来获取更改的值。

这两个回调函数(onTouchendonTouchStart)只能用于分派函数。

例如

<RangeSlider
...otherProps
onValueChanged={(low, high, fromUser) => {
                setSelectedTime(low);   // This value will be saved in state/elsewhere
              }}
onTouchEnd={() => {updateModelPrediction();}}  // In updateModelPred() you would run an analysis or something else
/>

更新模型预测会做如下事情...

updateModelPrediction(){
    // Grab values from where saved/state
    low, high = {this.state}
    // Do something with number

}
 类似资料:
  • 在我的Angular 2应用程序中,我使用普通的HTML5输入类型“范围”为用户提供一个简单的滑块组件。 我需要知道用户何时释放滑块。释放意味着使用鼠标完成拖动并释放鼠标按钮。为此,我参加了OnMouseUp活动。然而,这不适用于我使用触摸设备的情况。 在我的平板电脑,我可以拖动滑块aroun,但当释放它与我的手指的事件是没有发射。 我知道,这不是鼠标,但是什么事件相当于在鼠标上运行并在触摸设备上

  • 我试图用Dash重新创建这个生动的示例,但是我无法获得按钮和范围滑块。有人知道我怎么做吗? 这就是我尝试的:

  • 在本地MacOS应用程序的触摸栏中创建滑块 进程: 主进程​ new TouchBarSlider(options) 实验功能 用途:创建新滑块 options Object label String (可选) - 标签文本. value Integer (可选) - 所选值 minValue Integer (可选) - 最小值 maxValue Integer (可选) - 最大值 chang

  • 我正在尝试定制一个范围滑块根据我的需要我几乎在那里除了它的方向,目前它是水平对齐的,应该是垂直的。 我尝试添加和以及 不走运。 当前代码库如下:Style 标记 是不是我漏了什么?如有任何帮助,我们将不胜感激。谢谢

  • 我有一个960x540窗口,我正在使用OpenGL创建。在这里渲染一个纹理,并使用imgui实现一个滑块,让我在运行时翻译x、y和z位置。 首先,我设置滑块默认值。 稍后,在我的循环中,只要窗口打开,就会逐帧渲染对象的位置,我将ImGui::SliderFloat3和v\u min参数设置为窗口的尺寸。似乎所有3个滑块x、y和z都使用这些值,但是否有方法为每个滑块设置范围?正如你所看到的,我的y轴

  • 是否可以跟踪卡桑德拉的“预订”? 基本上,我的大多数查询将涉及一个和一个,我希望在其中找到与该时间相交的所有保留。 我的模式如下所示: 我输入了一些数据,如下所示: 我正在尝试这样的查询: 我得到一个这样的错误: 我认为这是可以做到的,因为在这个SO问题中似乎是这样的:在cassandra中存储时间范围 但是,架构没有发布,我们也没有使用pycassa,而且我似乎无法弄清楚如何将其映射到CQL。