Задать вопрос
chelkaz
@chelkaz

Как правильно добавить в компонент html а не обновлять его?

Сейчас при клике на кнопку показать еще, в таблицу подгружаются новые темы, удаляя все что было в таблице.
Не могу сообразить как при клике на кнопку добавлять в таблицу, а не заполнять заново.
Сейчас я делаю так:
Смысл простой в экшене идет запрос по API и получаю следующие темы по 50 штук.
Но когда нажимаю загрузить еще, то после экшена срабатывает метод loop в tbody, которые протсо рендерит заново. А нужно что бы старое не стирал.
import store from "../store";
import {fetchAllProducts} from "../actions/PoductsActions";
GetProducts = (url, code) => {
    return store.dispatch(fetchAllProducts(url ,code, true)).then(() => {
        console.log('Ok')
    })
}


handleClick = () => {
    this.GetProducts(this.props.products.item.next_page_url, this.props.products.select_sect_code)
}


render() {
    const loop = data => data.map((item) => {
        return (
            <tr key={item.IdProduct}>
                <td>{item.id}</td>
                <td>{item.name</td>
            </tr>
        )
    });
    if (typeof this.props.products.item.data !== 'undefined' && this.props.products.item.data.length > 0 ) {
        return (
       <section>
                <table>
                    <thead>
                        <tr>
                            <th>Код</th>
                            <th>Название</th>
                        </tr>
                    </thead>
                    <tbody>
                    {loop(this.props.products.item.data)}
                    </tbody>
                </table>
                <div onClick={this.handleClick} className={'catalog_list_pagination'}>еще</div>
       </section>
        );
    }
}
  • Вопрос задан
  • 84 просмотра
Подписаться 2 Средний 9 комментариев
Пригласить эксперта
Ответы на вопрос 1
При первой загрузки сохраняй в state его, отрисовывай , при клике на кнопку, получай новые данные , добавляй их в oldArray и отрисовывай его
state {
oldArray: []
}
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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