17

現在の動作:

ビューを引き上げて、サーバーから取得したリストを更新しようとしています。onRefresh を実行しても起動しません。

setState 関数のコールバックに GET リクエストを設定しましたが、何もしていないようです。

予想される行動:

ビューを引き上げると、onRefresh 関数が呼び出されます。

コード:

...
  constructor(props) {
    super(props);
    this.state = {
      stories: [],
      isFetching: false,
    };
  }
  componentDidMount() { this.fetchData() }
  onRefresh() {
    this.setState({ isFetching: true }, function() { this.fetchData() });
  }
  fetchData() {
    var that = this;
    axios.get('http://192.168.0.13:3000/api/story/get/by/geo')
      .then((res) => {
        that.setState({ stories: res.data, isFetching: false });
        that.props.dispatch(StoryActions.setStories(res.data))
      })
  }
  render() {
    return (
      <ScrollView>
        <FlatList
          onRefresh={() => this.onRefresh()}
          refreshing={this.state.isFetching}
          data={this.state.stories}
          keyExtractor={(item, index) => item.id}
          renderItem={({item}) => (<StoryFeed story={item} id={item.id} /> )}
          />
      </ScrollView>
    )
  }

バージョン情報

反応ネイティブ: 0.45.0

ノード: 7.4.0

4

7 に答える 7