react-native перезагружает Flastlist для каждого нового фокуса

#react-native #react-navigation #react-native-flatlist

#react-native #react-навигация #react-native-flatlist

Вопрос:

Как перезагрузить экран, когда веб возвращается на экран во второй раз (в навигаторе вкладок):

    export default class BasketTab1 extends React.PureComponent  {

   componentDidMount () {


       this.getProductsRequest();//retur
    }

    getProductsRequest(){

    }

    render() {
       return (

        <View style={{margin:5}}>
          <FlatList
            data={this.state.products}
             renderItem={this.renderItem}
             keyExtractor={this._keyExtractor}
             extraData={this.state}
             ...)
     }

}
  

Я пытаюсь
установите для дополнительных данных логическое значение.

 extraData={this.state.refresh}
  

И переключает значение логического состояния, когда я хочу обновить список

 constructor(props) {
    super(props);
    this.state = {
        refresh : false
    }
}
componentDidMount () {

this.didFocusListener = this.props.navigation.addListener(
  'didFocus',
  () => { this.setState({
      refresh: !this.state.refresh
  }) },
);
this.getProductsRequest();
}
  

Но никакой перезагрузки / ничего не происходит!

Как я могу это сделать?

Ответ №1:

Вы пробовали это?

 this.didFocusListener = this.props.navigation.addListener(
'didFocus',
   () => { this.setState({
  refresh: !this.state.refresh, products: [...this.state.products]
  }) },
);