【发布时间】:2022-01-23 13:38:22
【问题描述】:
单击跨度时,我想从数组中删除该元素并再次运行地图,以便跨度也被删除。我不知道是语法错误还是什么。这是我编写代码的沙盒的链接。 https://codesandbox.io/s/angry-wu-4dd11?file=/src/App.js
import "./styles.css";
export default function App() {
const data = [{
name: "Alex",
},
{
name: "John",
},
{
name: "Leo",
},
{
name: "Murphy",
},
{
name: "Alex",
},
{
name: "John",
},
{
name: "Leo",
},
{
name: "Murphy",
},
];
return ( <
div className = "App" > {
data.map(function(val, id) {
return ( <
span key = {
id
}
className = "select__item"
onClick = {
(e) => {
data.splice(data.indexOf(val), id + 1);
console.log(data);
}
} >
{
val.name
} < br / > < br / >
<
/span>
);
})
} <
/div>
);
}
【问题讨论】:
-
你应该使用
useState钩子来存储和更新数据。当某些变量发生变化时,React 不能神奇地触发重新渲染。 -
您应该使用
useState来实现这一点。您现在执行的方式既不会触发重新渲染,也不会修改原始数组。 -
你能给我看看这个例子吗?我是新手,有时我会被语法卡住。
标签: javascript arrays reactjs mapping