Загрузка данных из API в listview по реакции native через redux

Почему вы не хотите создавать новую тему? Если вы обеспокоены накладными расходами на создание своего объекта MyThread, сделайте его Runnable и запустите его с помощью new Thread(myThread).start();

0
задан baycisk 13 July 2018 в 08:33
поделиться

2 ответа

Сначала вы должны получить понимание жизненного цикла React Component .

Вы пытаетесь получить данные из api в componentWillMount, но данные все еще извлекаются, когда жизненный цикл componentDidMount встретился там, где вы создаете переменную dataSource. Таким образом, вы не получаете никакого источника данных.

Удалите функцию componentDidMount и измените функцию отображения так, чтобы всякий раз, когда вы получаете product_categories, источник данных будет сгенерирован.

render() {
    let {loading, error, product_categories} = this.props;

    if(error) {
        return (
            <View style={styles.errorWrapperStyle}>
                <Text style={styles.errorTextStyle}>{error}</Text>
            </View>
        );
    }

    if(product_categories & !loading){
        const ds = new ListView.DataSource({rowHasChanged: (r1, r2) => r1 !== r2});

        this.dataSource = ds.cloneWithRows(product_categories);

        return (
           <ListView
               dataSource={ this.dataSource }
               renderRow={ this.renderRow }
               enableEmptySections={ true }
           />
        );
    }
    return (
        <Spinner size="small" />
    );
}
1
ответ дан Lasitha 17 August 2018 в 13:20
поделиться
  • 1
    hi Lasitha, категория продукта возвращает [object Object], [object Object], ... и она не входит в часть if (product_categories & amp;! loading). – baycisk 18 July 2018 в 04:12
  • 2
    Я исправляю это с удалением product_categories, просто используя! – baycisk 18 July 2018 в 04:25
  • 3
    @baycisk отлично! – Lasitha 18 July 2018 в 05:30

Нужно ли вызывать компоненты componentWillReceiveProps после обновления реквизита

componentWillReceiveProps(nextProps){
 this.loadPosts(nextProps)**HERE YOU CAN GET UPDATED PROPS**
},

при обновлении данных в это время, вы можете получить доступ к этим данным в nextprops

0
ответ дан ashutosh pandey 17 August 2018 в 13:20
поделиться
Другие вопросы по тегам:

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