React-native:FlatList 获取滚动引用
React-native: FlatList get refs to scroll
我目前正在构建一个带有 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'
我能看到两件事,
- 您不需要在
{}
中定义字符串引用。但是 React 文档建议您使用 ref callback
像这样做
<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);
}
我目前正在构建一个带有 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'我能看到两件事,
- 您不需要在
{}
中定义字符串引用。但是 React 文档建议您使用 ref callback
像这样做
<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);
}