Javascript 如何在react中清空数组?
如上所述,如何清空数组?我尝试使用Javascript 如何在react中清空数组?,javascript,arrays,reactjs,Javascript,Arrays,Reactjs,如上所述,如何清空数组?我尝试使用useState像这样设置数组setArray([]),但实际上无法正常工作,因为有时数组没有完全重置,是否有其他方法清空它 代码: 首先,不需要调用setArray([])当您的最终目标是将数组的值更改为从函数传递下来的值时 它可能不会不时更新的原因是,虚拟DOM根本没有看到任何更改,或者您没有正确地迭代它们 如果要使用useState更改数组的值,并在其上循环并返回组件,请确保始终设置元素的key属性,该属性应设置为唯一标识符,以便虚拟DOM可以正常工作。有
useState
像这样设置数组setArray([])
,但实际上无法正常工作,因为有时数组没有完全重置,是否有其他方法清空它
代码:
首先,不需要调用
setArray([])
当您的最终目标是将数组的值更改为从函数传递下来的值时
它可能不会不时更新的原因是,虚拟DOM根本没有看到任何更改,或者您没有正确地迭代它们
如果要使用useState
更改数组的值,并在其上循环并返回组件,请确保始终设置元素的key
属性,该属性应设置为唯一标识符,以便虚拟DOM可以正常工作。有关更多信息,请阅读React文档:
要回答有关清除数组的问题:可以通过将变量设置为null
来清除数组
let exampleArray = ['a', 'b', 'c'];
console.log(exampleArray);
exampleArray = null;
console.log(exampleArray);
请注意,如果使用的是useState
hook,则可能需要几个周期才能在渲染输出中看到更改,因为它是异步执行的
如果想知道状态何时实际更新,可以使用useffect
钩子并传递(数组)变量,以便在状态更新时触发:
import React, {useState, useEffect} from 'react';
const Example = () => {
const [exampleArray, setExampleArray] = useState(['a', 'b', 'c']);
const handleClick = (e) => {
setExampleArray(null);
};
useEffect(() => {
console.log(exampleArray);
}, [exampleArray]);
return (
<button onClick={handleClick}>Test</button>
);
};
export default Example;
import React,{useState,useffect}来自“React”;
常量示例=()=>{
const[exampleArray,setExampleArray]=useState(['a','b','c']);
常量handleClick=(e)=>{
setExampleArray(空);
};
useffect(()=>{
log(例如数组);
},[示例数组];
返回(
试验
);
};
导出默认示例;
有关更多信息,请查看React文档:
使用spread操作符,无需重置即可执行此操作
const [array, setArray] = useState([]);
const functionName = (value) => {
setArray([...value]);
}
选中此选项:setArray([])
肯定会将数组设置为空数组。为什么要在它后面调用setArray([value])
?因为每次用户选择一个选项时,我都想在数组中插入新值,所以数组在重置后会有新值
const [array, setArray] = useState([]);
const functionName = (value) => {
setArray([...value]);
}