【发布时间】:2020-08-05 14:46:41
【问题描述】:
这是放置函数的AppComponent(容器组件):
import React, { Component } from 'react';
import './App.css';
import MainComponent from './MainComponent/MainComponent';
import AddPerson from './MainComponent/AddPerson';
class App extends Component {
state = {
profiles : [
{ id: 1, name: "Ayman", age: 21, job: "Web developer" },
{ id: 2, name: "Mark", age: 20, job: "Desktop developer" },
{ id: 3, name: "Elena", age: 22, job: "Mobile developer" },
{ id: 4, name: "Mohamed", age: 25, job: "Database manager" }
]
}
//add new record
addPerson = (person) => {
let newperson = [...this.state.profiles, person];
this.setState({
profiles: newperson,
})
}
//delete record by id
deletePerson = (idToDel) => {
let persons = this.state.profiles.filter(person => {
return person.id !== idToDel;
});
this.setState({
persons: persons,
})
}
render() {
return (
<div className="App">
<MainComponent personProfil={this.state.profiles} deletePerson={this.deletePerson} />
<AddPerson addPerson={this.addPerson} />
</div>
);
}
}
export default App;
这是显示人员列表的MainComponent(UI 组件):
//This is UI component
import React from 'react' ;
const MainComponent = (profiles, deletePerson) => {
//get all element from App
const { personProfil } = profiles;
//assign all the elements in a constant
//get person profiles
const profilesList = personProfil.map(person => {
if (person.age > 15) {
return (
<div className="person-content" key={person.id}>
<div>ID: {person.id}</div>
<div>Name: {person.name}</div>
<div>Age: {person.age}</div>
<div>Work as: {person.job}</div>
<button onClick={() => {deletePerson(person.id)}}>Delete</button>
</div>
)}
else {
return null;
}
})
//*** show data ***
return (
<div className="profile-list">
{ profilesList }
</div>
)
}
export default MainComponent
MainComponent(注意我在 MainComponent 中使用const)处理错误
<button onClick={() => {deletePerson(person.id)}}>Delete</button>
人员列表显示正确,但是当我单击删除按钮时,我收到错误 deletePerson 不是函数。如何解决这个错误?
【问题讨论】:
标签: reactjs react-redux jsx