Как вывести соответствующий ответ на <MaterialTable>, если поиск не дал результатов? - PullRequest
0 голосов
/ 11 июля 2020

Я использую в React таблицу из https://material-table.com/ Но я выполняю поиск данных по обещанию. Если поиск не даст результатов, таблица будет загружена навсегда ... Моя идея - показать какое-нибудь сообщение. Как мне сделать это оптимально?

 <MaterialTable
    title="Documents"
    columns={cols}
    data={query =>
    new Promise((resolve, reject) => {
        let url = global.url_base+'service'
        fetch(url, {
            method: 'POST',
            body: JSON.stringify({
                        search: query.search,
                        pageSize: query.pageSize,
                        page: (query.page + 1),
                        id: sessionStorage.getItem('id')
            }),
            headers: {
                    "Content-type": "application/json; charset=UTF-8"
            }
            })
        .then(response => response.json())
        .then(result => {
            resolve({
            data: result.data,
            page: result.page - 1,
            totalCount: result.total,
            })
        })
    })
    }
/>

1 Ответ

1 голос
/ 11 июля 2020

Вы должны получить свои данные где-нибудь еще, например. в componentDidMount (), где вы устанавливаете его как переменную состояния. Затем в таблице материалов просто введите data={(this.state.response) ? response : 'Your error message'} или, если эта таблица не использует строку в качестве данных, просто переключите отображение всей таблицы материалов и сообщения об ошибке.

...