Saya memiliki aplikasi reaksi/Redux. Masalahnya adalah saya ingin merender daftar elemen dalam status komponen saya dan daftar ini selalu kosong ketika metode render dijalankan dan saya tidak dapat menggunakannya.
Elemen ini berasal dari panggilan API.
Ini adalah komponen saya:
class PeopleView extends Component {
static propTypes = {
people: PropTypes.array,
view: PropTypes.string
}
static stateToProps = state => ({
people: state.properties.items || [],
sortedPeople: sortBy(state.people.items || [], 'birthday'),
})
constructor(props) {
super(props);
const { people } = props;
const sortedPeople = sortBy(people, 'birthday');
this.state = {
people: people,
sortedPeople: sortedPeople,
collapsed: true
};
}
toggleCollapsed = (e) => {
this.setState({collapsed: !this.state.collapsed});
}
deleteHandler = (id) => {
console.log("Person Id", id)
}
render() {
// THIS IS EMPTY: this.state.people = []
// THIS IS NOT EMPTY: this.props.people = [{...}, {...}, {...}, ...]
const sortedPeople = sortBy(this.props.people, 'createdAt');
const sortedPeopleElements = this.props.sortedPeople.map((p, i) => {
return <li key={p.id}>
<Person index={i} id={p.id} name={p.name} onDelete={this.deleteHandler} />
</li>
});
return (
<div>
<ul>
{sortedPeopleElements}
</ul>
</div>
);
}
}
export default connect(PeopleView);
Daftar orang di negara bagian selalu kosong dalam metode render, tetapi daftar orang di props selalu baik-baik saja. Kenapa ini?
Bagaimana cara mengatur status agar berfungsi dengan render dan mulai menghapus orang dari daftar ini?
connect()
- person xadm   schedule 18.08.2018Uncaught ReferenceError: stateToProps is not defined
ini ketika mengubahnya menjadi ini: connect(stateToProps)(PeopleView); - person danielrvt   schedule 18.08.2018stateToProps
. - person Nikhil Thakur   schedule 18.08.2018