当前位置: 首页 > 面试题库 >

React Hooks(useState)中的Push方法?

胡景澄
2023-03-14
问题内容

如何在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>

因为唯一的更新theArrayclick事件中的一个(“离散”事件之一),所以我可以通过直接更新来解决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: 让我们快速