javascript - 如何返回元素 React
问题描述
我请求你的帮助。我有一个工作代码和两个按钮。一个删除数组的第一个元素,第二个 - 最后一个元素。如何使用“恢复”按钮恢复(恢复)所有项目。
import logo from './logo.svg';
import React, {useState} from 'react';
import './App.css';
function App() {
let [array, changedArray] = useState([
{
id: 1,
title:'title 1',
price:1
},
{
id: 2,
title: 'title 2',
price: 2
},
{
id:3,
title: 'title 3',
price: 3
}
)]
function removeFirstElement () {
let newArray = [...array];
newArray.shift();
changedArray(newArray);
}
function removeLastElement() {
let newArray = [...array];
newArray.pop();
changedArray(newArray)
}
return(
<div>
<ul>{array.map(el =><li>{el.title} {el.price}</li>)}</ul>
<button onClick={removeFirstElement}>Delete first element</button>
<button onClick={removeLastElement}>Delete last element</button>
<button>Restore</button>
</div>
);
}
export default App;
解决方案
您可以做的是将初始数组存储在 ref. 当您单击恢复按钮时,您可以使用该参考设置您的状态。
let [array, changedArray] = useState([...])
let initialValue = useRef(array);
const onRestore = () => {
changedArray(initialValue.current);
};
<button onClick={onRestore}>Restore</button>
推荐阅读
- git - 如何将两个文件的 git 差异放入一个新文件中?
- amazon-web-services - AWS 服务角色与服务链接角色
- python - 如何在python中找到距离度量
- c++ - 使用对象引用传输变量。有还是没有 &?
- docker - 在 VSCode 中,“Python:远程连接”无法连接到正在运行的 Docker 容器
- typescript - 如果判别属性是联合,则类型缩小错误
- amazon-web-services - AWS sam 使用嵌套堆栈部署 - 来自子堆栈的错误不会冒泡
- python - 来自 com 类型的 CreateObject 错误?
- python - 如何使用 python RST 丢包?
- javascript - 一个javascript函数上的多个按钮