J'essaie de filtrer une liste en utilisant react, mais étonnamment, pour une tâche aussi courante, je ne trouve rien en ligne pour m'aider à y parvenir.
J'ai un tableau d'utilisateurs que je veux ensuite filtrer (en commençant par le nom - je peux ensuite travailler sur le filtrage par âge). Le tableau est dans mon magasin redux et ressemble à ce qui suit.
let users = [
{
name: 'Raul',
age: 29
},
{
name: 'Mario',
age: 22
}
];
L'ensemble de mon composant ressemble à ce qui suit.
class Test extends Component {
constructor(props) {
super(props);
this.state = {
users: this.props.users
};
this.filterList = this.filterList.bind(this);
}
componentWillReceiveProps(nextProps) {
this.setState({
users: nextProps.users
});
}
filterList(event) {
let users = this.state.users;
users = users.filter(function(user){
//unsure what to do here
});
this.setState({users: users});
}
render(){
const userList = this.state.users.map((user) => {
return <li>{user.name} {user.age}</li>;
});
return(
<input type="text" placeholder="Search" onChange={this.filterList}/>
<ul>
{ userList }
</ul>
);
}
}