反应挂钩中的推送方法(useState)?

如何将元素推入useState数组中?
在react状态下,这是一种旧方法吗?还是什么新鲜事

例如,设置状态推送示例

使用useState时,可以获得状态项的更新方法:

const[theArray,setTheArray]=useState(initialArray);

然后,当需要添加新元素时,使用该函数并传入新数组或将创建新数组的函数。通常是后者,因为状态更新是异步的,有时是批处理的:

设置数组(oldArray=>[…oldArray,newElement]);

有时,如果您仅更新处理程序中特定用户事件的数组,如单击(但不象鼠标移动),则可以不使用该回调窗体:

设置数组([…数组,新元素]);

React确保刷新渲染的事件是;离散事件“;在这里列出

实时示例(将回调传递到setTheArray):

const{useState,useCallback}=React;
函数示例(){
const[theArray,setTheArray]=useState([]);
常量addEntryClick=()=&gt{
setTheArray(oldArray=>[…oldArray,`Entry${oldArray.length}`]);
};
返回[
<input type=“button”onClick={addEntryClick}value=“Add”/>,
<div>{theArray.map(条目=>
<div>{entry}</div>
)}
</div>
];
}
ReactDOM.render(
<示例/>,
document.getElementById(“根”)
);
<div id=“root”&gt&lt/部门>
<脚本src=”https://cdnjs.cloudflare.com/ajax/libs/react/16.8.1/umd/react.production.min.js“&gt&lt/脚本>
<脚本src=”https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.8.1/umd/react-dom.production.min.js“&gt&lt/脚本&gt

由于对数组的唯一更新是在单击事件(一个“离散”事件)中的更新,因此我可以在附录中直接更新:

const{useState,useCallback}=React;
函数示例(){
const[theArray,setTheArray]=useState([]);
常量addEntryClick=()=&gt{
setTheArray([…theArray,`Entry${theArray.length}`]);
};
返回[
<input type=“button”onClick={addEntryClick}value=“Add”/>,
<div>{theArray.map(条目=>
<div>{entry}</div>
)}
</div>
];
}
ReactDOM.render(
<示例/>,
document.getElementById(“根”)
);
<div id=“root”&gt&lt/部门>
<脚本src=”https://cdnjs.cloudflare.com/ajax/libs/react/16.8.1/umd/react.production.min.js“&gt&lt/脚本>
<脚本src=”https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.8.1/umd/react-dom.production.min.js“&gt&lt/脚本&gt

发表评论