このクラスを使用して、リストを表示およびフィルタリングしています。このクラスも検索をトリガーします。
私の問題は、 setState 関数が即時ではないように見えることです。
FriendActions.getSearchList(this.state.search);
このアクションにコメントすると。console.log には、本来あるべき状態が出力されます。そうでない場合、「検索」状態は「消えます」。
状態が変更される前に変更イベントが発生する可能性があると思います。しかし、私は本当に手がかりがありません。
私は自分自身を明確にしたことを願っています。そうでない場合は、お気軽にお問い合わせください。
onSearch(event){
this.setState({search: event.target.value});
if (this.state.search !== '')
FriendActions.getSearchList(this.state.search);
}
class FriendList extends React.Component {
constructor(props) {
super(props);
this.state = FriendStore.getState();
this.onChange = this.onChange.bind(this);
this.filterByUsername = this.filterByUsername.bind(this);
// limit this function every 200 ms
this.onSearch = debounce(this.onSearch, 200);
}
componentDidMount () {
FriendStore.listen(this.onChange);
FriendActions.getFriendsList();
}
componentWillUnmount() {
FriendStore.unlisten(this.onChange);
}
onChange(state) {
console.log(state);
this.setState(state);
}
onSearch(event){
this.setState({search: event.target.value});
if (this.state.search !== '')
FriendActions.getSearchList(this.state.search);
}