Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/376.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript React native:FlatList获取要滚动的引用_Javascript_Reactjs_React Native_React Native Flatlist - Fatal编程技术网

Javascript React native:FlatList获取要滚动的引用

Javascript React native:FlatList获取要滚动的引用,javascript,reactjs,react-native,react-native-flatlist,Javascript,Reactjs,React Native,React Native Flatlist,我目前正在使用react native构建一个应用程序: 这是我的平面列表: <FlatList ref={"myFlatList"} data={data} keyExtractor={this._keyExtractor} renderItem={this._renderItem} /> 但我有一个错误: 无法读取未定义的属性“scrollToIndex”我可以看到两件事 您不需要在{}中定义字符串引用。但是,Re

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

这是我的平面列表:

    <FlatList
      ref={"myFlatList"}
      data={data}
      keyExtractor={this._keyExtractor}
      renderItem={this._renderItem}
    />
但我有一个错误:
无法读取未定义的属性“scrollToIndex”

我可以看到两件事

  • 您不需要在
    {}
    中定义字符串引用。但是,React文档建议您使用ref回调
  • 像这样做

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


    谢谢你的回答,我已经试过了,但是我有同样的错误你的内部函数有一个绑定,但是外部函数如何,即
    \u enableTVEventHandler
    我的函数在这里被调用:componentDidMount(){this.\u enableTVEventHandler();}我需要绑定它?是的,你需要绑定它
     <FlatList
          ref={(list) => this.myFlatList = list}
          data={data}
          keyExtractor={this._keyExtractor}
          renderItem={this._renderItem}
        />
    
    _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); 
    }