我对React还比较新,大部分学习都是通过观看教程实现的。所以在这个阶段,我跟着我的教练走了一段路,然后根据自己的理解开始实现。但是在此过程中,我遇到了以下错误:
React:.map不是一个函数
下面是代码:
render() {
let person = null;
if (this.state.showPerson) {
person= (
<div>
{
this.state.person.map((el, index) => {
return <Person
key={el.id}
click={this.deletePersonHandler.bind(index)}
name={el.name}
age={el.age}
changed={(event) => this.eventSwitchHandler(event, el.id)} />
})
}
</div>
);
}
return (
实现eventSwitchHandler后出现了错误,这是我的开关处理程序代码。
eventSwitchHandler = (event, id) => {
const personInput = this.state.person.find(checkID);
function checkID (passedID) {
return passedID.id === id
}
console.log("newP")
const newP = {...personInput}
console.log(newP)
newP.name = event.target.value
console.log(personInput)
this.setState ({person: newP})
}
[更新] 这是状态
state = {
person: [
{id: "name1n", name: "Rohit", age: 24},
{id: "name2l", name: "Hariom", age: 23},
{id: "name3g", name: "Vaibhav", age: 58}
],
someOtherState: "Untouched state",
showPerson: false
}
[更新] 这是我的教练代码,他的名称更改处理程序等于我的事件切换处理程序。
![enter image description here](https://istack.dev59.com/1gAle.webp)
.map不是函数
”的错误,并且在控制台记录信息时,我观察到了一些对我来说很罕见的东西,我已经附上了屏幕截图(为什么名称在两个地方看起来不同?)