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

如何设置useState const为更改时输入的值

燕富
2023-03-14

假设我在功能组件中创建了一个变量,如下所示:

const [quizName, setQuizName] = useState("");

如何根据用户输入的内容更改此值。我的想法是:

<input
    value={quizName}
    onChange={setQuizName(value)}
></input>

但是它不知道什么是值,我怎么能得到值到我的quizName变量

共有3个答案

戚衡
2023-03-14
onChange={setQuizName(value)}

当您像这样调用函数时,它将在不等待您更改的情况下执行。

onChange={(e) => setQuizName(e.target.value)}

才是正确的做法

富辰阳
2023-03-14

最简单的方法是在输入更改时使用一个函数,如:

<input value={quizName} onChange={(e)=>setQuizName(e.target.value)} />

没关系!,但是看在上帝的份上,请停止这样做!

您正在根据输入的每次更改创建一个函数并运行它!这是不好的性能虎钳!特别是如果你在一个大规模的应用程序中,在你的组件中的任何地方都能做到这一点!

您需要做的就是像下面这样使用useCallback

const [quizName, setQuizName] = useState("");

const handleInputChange = useCallback((e) => {
   setQuizName(e.target.value)
}, [setQuizName])


return (
   <input value={quizName} onChange={handleInputChange} />
)

以下是react文档中的useCallback说明:

https://reactjs.org/docs/hooks-reference.html#usecallback

松越
2023-03-14
<input
    value={quizName}
    onChange={(e)=>setQuizName(e.target.value)}>
</input>
 类似资料:
  • 问题内容: 注意: 以下答案与评论反映了2009年旧版浏览器的状态。现在,您实际上可以在2017年使用JavaScript和dataTransfer或FileList对象动态/以编程方式设置文件输入元素的值。 有关详细信息和演示,请参见此问题的答案: 如何以编程方式设置文件输入值(即:拖放文件时)? 如何设置此值? 问题答案: 由于安全原因,您不能。 想像: 您不希望所访问的网站能够做到这一点,对

  • 问题内容: 注意: 以下答案与评论反映了2009年旧版浏览器的状态。现在,您实际上可以在2017年使用JavaScript和dataTransfer或FileList对象动态/以编程方式设置文件输入元素的值。 如何设置此值? 问题答案: 由于安全原因,您不能。 想像: 您不希望所访问的网站能够做到这一点,对吗?

  • 组件: 表单: 该函数更新一个JSON记录。例如,它用“fname”ng model更新“firstName:”条目。问题是,除非用户修改输入的值,否则ngModel被读取为null,即使已经存在< code > value = " { { current user . first name } } " 的值。 如何设置 ngModel 以从实际输入的值其值?

  • 可以为用户输入设置计时器吗?等待10秒钟-进行下一步操作等。我的意思是例如

  • 问题内容: 我正在使用来更新旧的应用,并且当没有广告时,它会滑出屏幕。出现广告时,它会在屏幕上滑动。基本的东西。 旧样式,我将帧设置在动画块中。新样式,我对自动布局约束有一个确定Y位置,在这种情况下,它是距父视图底部的距离,并修改常量: 横幅完全按预期移动,但没有动画。 更新:我重新观看了WWDC 12讲的“掌握自动布局的最佳实践” ,其中涵盖了动画。它讨论了如何使用CoreAnimation更新

  • 大家好,我有代码主和tictactoe类 这里是main类的示例。在这段代码中,我输入了类似字符串号的内容 这是为我的tictactoe程序班准备的。如果我运行这个代码,我只有3x3tictactoe程序,所以我想用我的输入修改其中一个代码,这样我的tictactoe将输入x输入 我的问题是我想改变这个领域 成为 公共静态最终int行=输入;//行按COLS单元格public static fin