如何在useState数组React挂钩中推送元素?那是反应状态下的一种旧方法吗?还是新东西?
使用时useState
,可以获得状态项的更新方法:
const [theArray, setTheArray] = useState(initialArray);
然后,当您要添加新元素时,可以使用该函数并传入新数组或将创建新数组的函数。通常情况下是后者,因为状态更新是异步的,有时是分批的:
setTheArray(oldArray => [...oldArray, newElement]);
有时,如果您 仅针对某些特定的用户事件click
(例如,但不喜欢mousemove
)更新处理程序中的数组,则无需使用回调形式就可以摆脱困境:
setTheArray([...theArray, newElement]);
React保证刷新渲染的事件是此处列出的“离散事件” 。
实时示例(将回调传递给setTheArray
):
const {useState, useCallback} = React;
function Example() {
const [theArray, setTheArray] = useState([]);
const addEntryClick = () => {
setTheArray(oldArray => [...oldArray, `Entry ${oldArray.length}`]);
};
return [
<input type="button" onClick={addEntryClick} value="Add" />,
<div>{theArray.map(entry =>
<div>{entry}</div>
)}
</div>
];
}
ReactDOM.render(
<Example />,
document.getElementById("root")
);
<div id="root"></div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.8.1/umd/react.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.8.1/umd/react-dom.production.min.js"></script>
因为唯一的更新theArray
是click
事件中的一个(“离散”事件之一),所以我可以通过直接更新来解决addEntry
:
const {useState, useCallback} = React;
function Example() {
const [theArray, setTheArray] = useState([]);
const addEntryClick = () => {
setTheArray([...theArray, `Entry ${theArray.length}`]);
};
return [
<input type="button" onClick={addEntryClick} value="Add" />,
<div>{theArray.map(entry =>
<div>{entry}</div>
)}
</div>
];
}
ReactDOM.render(
<Example />,
document.getElementById("root")
);
<div id="root"></div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.8.1/umd/react.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.8.1/umd/react-dom.production.min.js"></script>
本文向大家介绍简介JavaScript中的push()方法的使用,包括了简介JavaScript中的push()方法的使用的使用技巧和注意事项,需要的朋友参考一下 JavaScript的数组push()方法追加在最后该数组的给定元素(多个),并返回新的数组的长度。 语法 下面是参数的详细信息: element1, ..., elementN: 元素添加到数组的末尾。 返回值: 返回新数组
本文向大家介绍angular json对象push到数组中的方法,包括了angular json对象push到数组中的方法的使用技巧和注意事项,需要的朋友参考一下 在项目中,api要求的数据格式为 而我的返回格式为 需要将两个数组整合,其中$scope.selected要先转化为json对象,再进行push操作。 代码如下: 以上这篇angular json对象push到数组中的方法就是小编分享给
本文向大家介绍Javascript数组中push方法用法分析,包括了Javascript数组中push方法用法分析的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Javascript数组中push方法用法。分享给大家供大家参考,具体如下: 看下面代码: Q:o现在内部的值是什么样子? 我的第一反应是排斥,为什么要研究不合理情况下【解释引擎】的行为?但是这种推论有时候又很吸引人,于是我回来的
本文向大家介绍JavaScript中的push()与unshift()?,包括了JavaScript中的push()与unshift()?的使用技巧和注意事项,需要的朋友参考一下 push()与 方法推()和不印字()被用于在一个数组添加元素。但是它们略有差异。该方法推()是用来在添加元素端数组的,而该方法是用于在添加的元素开始的数组构成。让我们详细讨论它们。 推() 语法 示例 在下面的示例中,
useState 接受初始状态作为参数,返回 stateful (有状态) 值,以及更新这个状态值的函数。它可以接受一个回调函数,该回调函数将获取当前状态作为参数。 每次调用 useState 都与一个组件配对,可以在一个函数组件内多次调用 useState 来获取多个独立的状态值。因为返回的setState的作用域不是单个组件,所以我们可以定义独立于组件的有状态行为。 在初始渲染的时候,返回的状
问题内容: 我目前正在React中学习钩子概念,并试图理解以下示例。 上面的示例在处理程序函数参数本身上增加计数器。如果我想在事件处理函数中修改计数值怎么办 考虑下面的例子 问题答案: React钩子是访问React核心功能的一种新方法(仍在开发中),例如无需使用类,在您的示例中,如果您想直接在处理函数中增加计数器而不在prop中直接指定它,您可以可以做类似的事情: 和onClick: 让我们快速