不受控范围输入

ReactReactBeginner
立即练习

This tutorial is from open-source community. Access the source code

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

在本实验中,我们将探索如何在React中创建一个不受控的范围输入元素,该元素允许用户通过沿水平线滑动按钮来从一系列数字中选择值。我们将使用回调函数将选定的值传递给父组件。在本实验结束时,你将更好地理解如何在React中使用 onChange 事件和 defaultValue 属性。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL react(("React")) -.-> react/FundamentalsGroup(["Fundamentals"]) react/FundamentalsGroup -.-> react/jsx("JSX") react/FundamentalsGroup -.-> react/event_handling("Handling Events") subgraph Lab Skills react/jsx -.-> lab-38361{{"不受控范围输入"}} react/event_handling -.-> lab-38361{{"不受控范围输入"}} end

不受控范围输入

虚拟机中已提供了 index.htmlscript.js。一般来说,你只需在 script.jsstyle.css 中添加代码。

要在React中创建滑块,请使用 Slider 组件并传入 minmaxdefaultValueonValueChange 属性。

Slider 组件中,将 <input> 元素的 type 设置为 "range" 以创建滑块。使用从父组件传递下来的 defaultValue 属性作为不受控输入字段的初始值。使用 onChange 事件触发 onValueChange 回调,并将新值发送给父组件。

以下是 Slider 组件的代码:

const Slider = ({
  min = 0,
  max = 100,
  defaultValue,
  onValueChange,
  ...rest
}) => {
  return (
    <input
      type="range"
      min={min}
      max={max}
      defaultValue={defaultValue}
      onChange={({ target: { value } }) => onValueChange(value)}
      {...rest}
    />
  );
};

要渲染 Slider 组件,请使用 ReactDOM.createRoot 并传入 onValueChange 回调函数:

ReactDOM.createRoot(document.getElementById("root")).render(
  <Slider onValueChange={(val) => console.log(val)} />
);

请点击右下角的“Go Live”以在端口8080上运行Web服务。然后,你可以刷新“Web 8080”标签页以预览网页。

总结

恭喜你!你已经完成了不受控范围输入实验。你可以在LabEx中练习更多实验来提升你的技能。