【发布时间】:2021-05-08 02:59:25
【问题描述】:
在这个组件中,我不确定是否应该使用 createRef 和 useRef 从输入中获取信息。你能帮我弄清楚我应该如何选择其中一个吗?提前致谢
import React from 'react'
const AddBook = (props) => {
const handleNewBook = props.handle
let titleInput = React.createRef();
let authorInput = React.createRef();
return (
<div className="add-book">
<span className="add-book-title">Add a book:</span>
<form>
<input type="text" ref={titleInput} placeholder="Title" />
<input type="text" ref={authorInput} placeholder="Author" />
<button
type="reset"
onClick={() =>
handleNewBook(titleInput.current.value, authorInput.current.value)
}
>
Add
</button>
</form>
</div>
);
}
export default AddBook
【问题讨论】:
-
最好使用受控输入,
value、onChange并保持值处于状态。通常你会使用ref来处理像inputRef.focus()这样需要直接访问组件的东西。 -
我也有一个阶段,我想将 useRef 用于文本输入,因为我不喜欢每次更改文本时状态更改如何导致重新渲染……这不值得。 useState 要简单得多,它可以正常工作。此外,Facebook 每隔一段时间就会改变 refs 的工作方式,一天是 ref.value,另一天是 ref.current.value ......这只是一件麻烦事。 ref 还包含许多您不需要的元信息。只使用状态。 :)