У меня есть приложение React/Redux. Проблема в том, что я хочу отобразить список элементов в состоянии моего компонента, и этот список всегда пуст, когда выполняется метод рендеринга, и я не могу его использовать.
Эти элементы поступают из вызова API.
Это мой компонент:
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);
Список людей в состоянии всегда пуст в методе рендеринга, но список людей в свойствах всегда в порядке. Почему это?
Как мне настроить состояние для работы с рендером и начать удалять людей из этого списка?
connect()
- person xadm   schedule 18.08.2018Uncaught ReferenceError: stateToProps is not defined
при замене на это: connect(stateToProps)(PeopleView); - person danielrvt   schedule 18.08.2018stateToProps
. - person Nikhil Thakur   schedule 18.08.2018