我正在学习React,并开始通过useState
Hook在CRUD形式中处理状态。像这样:
const [data, setData] = useState({});
其中data
是包含表单状态的对象,而他的props是输入的值。
我有两个顾虑:
1)不必要的渲染如果输入发生变化(onChange或onBlur事件),我通过典型的handleChanged函数更新状态,例如:
const handleChanged = (e) => {
setData(...data, [e.target.name]: e.target.value)
});
表单是只呈现特定更改的输入,还是呈现整个表单(所有输入)?如果它是针对所有输入的,如何避免呢?
2) Arrays and useState.如果不是单个数据对象,而是一个数据对象数组,例如:在一个可编辑的表,useState
如何处理每个数组元素?我已经搜索了一些例子,但它们都是针对单个对象的。
第一部分:
根据以下定义:React会在每次组件状态改变时安排一次渲染。useState
仅更改发生更改的组件。在你的情况下,我相信,重新渲染发生。
既然轮子已经发明了,为什么还要重新发明呢?
如果你关心表单,你应该探索这个库:https://react-hook-form.com/
此外,您将能够在https://react-hook-form.com/
的隔离重新呈现部分中正确地可视化它第2部分:
您可以使用useState
来存储Array
,Array
可以是Objects
的集合。
为了从数组中呈现组件,您可以进一步使用map
函数。
或者如果你只是想访问数据,那么你可以使用索引值来访问对象。
我希望,这是有意义的。
如果您所关注的整个代码片段被共享,那么解释可能会更好。
问候,Shameel Uddin