3

我目前正在使用 react native 构建一个应用程序:

这是我的平面清单:

    <FlatList
      ref={"myFlatList"}
      data={data}
      keyExtractor={this._keyExtractor}
      renderItem={this._renderItem}
    />

在这个函数中,我想滚动到一个特定的索引:

  _enableTVEventHandler() {
    this._tvEventHandler = new TVEventHandler();
    this._tvEventHandler.enable(this, function(cmp, evt) {
        this.refs["myFlatList"].scrollToIndex({viewPosition: 0.5, index: 2});
    }.bind(this));
  }

但我有一个错误:无法读取未定义的属性“scrollToIndex”

4

1 回答 1

4

我能看到的两件事,

  1. 您无需在{}. 但是 React 文档建议您使用 ref 回调

做类似的事情

 <FlatList
      ref={(list) => this.myFlatList = list}
      data={data}
      keyExtractor={this._keyExtractor}
      renderItem={this._renderItem}
    />
  1. 您需要绑定您的函数才能引用正确的上下文

做喜欢

_enableTVEventHandler = () => {
    this._tvEventHandler = new TVEventHandler();
    this._tvEventHandler.enable(this, function(cmp, evt) {
        this.myFlatList.scrollToIndex({viewPosition: 0.5, index: 2});
    }.bind(this));
  }

或者

constructor(props) {
    super(props) ;
    this._enableTVEventHandler = this._enableTVEventHandler.bind(this); 
}
于 2017-05-12T11:19:33.570 回答