【发布时间】:2022-01-06 22:26:23
【问题描述】:
目前正在学习 React,我很困惑为什么会这样。 我的 App.JS:
import logo from './logo.svg';
import './App.css';
import Header from './components/Header'
import Tasks from './components/Tasks'
import {useState} from 'react'
function App() {
let name = "Max";
const [tasks, setTasks] = useState([
{
id: 1,
text: 'Doctors Appointment',
day: "Feb 5th at 2:30 pm",
reminder: true,
},
{
id: 2,
text: "Meeting at School",
day: "Feb 6th at 1:30pm",
reminder: true,
},
{
id: 3,
text: "Food Shopping",
day: "Feb 5th at 2:30pm",
reminder: false,
},
])
const deleteTask = (id) => {
alert("deleted " + id);
}
return (
<div className="container">
<Header />
<Tasks tasks={tasks} onDelete = {deleteTask} />
</div>
);
}
export default App;
Tasks.JS 基本上只是将 Task.js 显示为 h3s Task.js:
import {FaTimes} from 'react-icons/fa'
const Task = ({ task, onDelete }) => {
return (
<div className = "task">
<h3>{task.text} <FaTimes style = {{color:'red', cursor:"pointer"}} onClick = {() => onDelete(task.id)}/></h3>
<p>{task.day}</p>
</div>
)
}
export default Task
所以我看到了onClick = () => onDelete(task.id) 的箭头函数,想知道为什么我不能只做onClick = onDelete(task.id) 所以我尝试了它并得到了一些意想不到的行为。基本上,在创建页面时,我收到每个项目已被删除三次的警报,然后当我单击它时什么也没发生。
为什么会这样?比如我该如何解释这种行为?为什么需要这个箭头函数?
【问题讨论】:
标签: javascript reactjs web