FlatList参考问题

时间:2019-05-04 05:12:34

标签: react-native react-native-flatlist

我没有得到ref中的flatlist总是

  

警告:不能为功能组件提供引用。尝试访问   该裁判将失败。您是要使用React.forwardRef()吗?

我是本机初学者

export default class ListData extends Component {
  constructor(props) {
    super(props);
    this.state = {
      flatListRef: null
    };
  }
  render() {
    return (
      <View style={styles.container}>
        <FlatList
          data={countryList}
          ref={ref => (this.state.flatListRef = ref)}
          style={{ flex: 1 }}
          showsVerticalScrollIndicator={false}
          showsHorizontalScrollIndicator={false}
          renderItem={({ item, index }) => (
            <View style={[styles.ListViewContainer]}>
              <Text style={styles.countryTxt}>
                <Text> +{item.code}</Text>
                <Text> {item.CountryName} </Text>
              </Text>
            </View>
          )}
          keyExtractor={(item, index) => index.toString()}
        />
      </View>
    );
  }
}
const styles = StyleSheet.create({
  container: {
    flex: 1,
    marginTop: 40,
    backgroundColor: "white"
  }
});

3 个答案:

答案 0 :(得分:0)

尝试一下:

在您的构造函数中

this.flatListRef = React.createRef()

,然后在FlatList中执行以下操作:

<FlatList ref={this.flatListRef} ...

答案 1 :(得分:0)

使用import { FlatList } from "react-native" 代替 import { FlatList } from 'react-native-gesture-handler';

正在工作。但是我仍然想为什么它不能与“ react-native-gesture-handler”一起使用。虽然列表显示正确,但引用没有得到。

答案 2 :(得分:0)

尝试将ref={null}传递到列表项组件。

renderItem={({ item, index }) => (
  <View style={[styles.ListViewContainer]} ref={null}>