@Jasulan98

Flatlist не обновляется?

Есть компонент Parent
class Parent extends React.Component {
      constructor(props){
      super(props);
      this.state={data:[]}
      }
     componentDidMount(){
     /*Загружаю данные с сервера*/
   } 
    render(){
     return(
        <Child data={this.state.data} refresh={this.state.refresh}/>
    )
    }
   }

Компонент Child
class Child extends React.Component {
      constructor(props){
      super(props);
      this.state={refresh:this.props.refresh}
      }
    render(){
     <FlatList  
                   keyExtractor = {( item, index ) => index.id }
                   data = { this.props.data}
                   renderItem={this.renderItem.bind(this)}
                   extraData={this.props.refresh}{/*поставил даже  extraData={this.props},extraData={this.state.refresh} или даже подписался на родительский компонент чтобы обновить не вышло.*/}                   
            />
    )
    }
   }


И когда данные в Parent компоненте изменятся Child не изменяется.Использовал для Parent shouldcomponentDidUpdate не вышло.Короче как обновить flatlist если в дочернем компоненте?
  • Вопрос задан
  • 349 просмотров
Пригласить эксперта
Ответы на вопрос 1
@DragonSpirit
Mobile Developer
В теории можно в extraData запихать this.props.data и при изменении вызовется перередер. Данные корректно обновляются в дочернем компоненте? Можно проверить в устаревающем componentWillReceiveProps приходят ли в него новые пропсы. И вообще как происходит обновление в componentDidMount? Надеюсь через this.setState, а не напрямую?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы