Поймать бэкэнд возвратил ошибку в React - PullRequest
0 голосов
/ 18 декабря 2018

Hellow All, я использую реагировать на редукцию с машинописью.Итак, когда серверная часть вернула ошибку, я не хочу ее возвращать с серверной части.В моем Api вернуть эту ошибку при сбое.

enter image description here

Это мой вызов API, fucntion,

   /**
 * @function createSalesContact
 * @export
 * @param {Array<ISalesContact>} salesContact
 * @returns {Promise<ISalesContactListItem[]>}
 */
export function createSalesContact(salesContact: Array<ISalesContact>): Promise<ISalesContactListItem[]> {
    return contactBookApiCalls.createSalesContacts(salesContact);
}

Здесь мое действие,

/**
 * @function crateSalesContact
 * action of create new sales contact
 * @param {Array<ISalesContact>} salesContact
 * @returns
 */
export const crateSalesContact = (salesContact: Array<ISalesContact>) => {
    return (dispatch: Dispatch, states: () => ISalesContactStoreState) => {
        dispatch(requestAddNewContact());

        createSalesContact(salesContact)
            .then(onSuccess)
            .catch(onError);

        function onSuccess(response: ISalesContactListItem[]) {
            dispatch(addToast("success", { text: "Sales Contact Created successfully" }))
            dispatch(addNewContactSuccess());
            dispatch(togglePage({ page: 'salesContact', action: 'View', 
            editId: response[0].Data.SalesContactId }));

        }

        function onError(error: any) {
            dispatch(addNewContactError(error));
        }
    };
};

Так что я не поймаю ошибку «Требуется первое имя».Так каков возможный способ сделать это

1 Ответ

0 голосов
/ 20 декабря 2018

Я найду обходной путь для этого.Здесь моё решение.

Я меняю свой метод «Ошибка действия» следующим образом.

function onError(response: Response) {
        if (response.status === 500) {
            return response.json() 
                .then((json) => {

                    dispatch(addToast("error", { text: json.Message }));
                    dispatch(recieveSalesContactUpdateError(json.Message));

                    console.log(json.Message)
                });
        } else {
            return response.json();
        }
    }
...