Различение между различными типами ошибок - PullRequest
0 голосов
/ 27 сентября 2019

Мое состояние выглядит следующим образом:

export interface SchemasState {
  list: Config6Schema[] | null;
  loading: boolean;
  error: string | null;
}

В моем извлечении thunk я устанавливаю loading в true при отправке запроса API, в случае успеха я устанавливаю list и при ошибке я установил error.Это прекрасно работает.

Теперь у меня есть компонент, который смотрит как list, так и error.Когда присутствует list, он отображает список.Когда ошибка присутствует, вместо этого отображается ошибка.

Однако, когда я закодировал thunk addNewSchema , я не уверен, как обрабатывать состояние сбоя моего запроса API, так как еслиЯ устанавливаю ошибку, когда мой запрос на создание API не выполняется, это также влияет на компонент, отображающий список.Принимая во внимание, что я просто хочу показать, может быть, в модальном случае это был запрос на добавление, который не удался.

Создать ли отдельные поля ошибок для всех запросов?

Компонент, который вызывает добавление:

export interface AddSchemaPageProps {
  componentId: string;
}

const AddSchemaPage: NextPage<AddSchemaPageProps> = function ({
  componentId
}) {
  const dispatch = useDispatch();

  const handleSave = useCallback(
    async (data: Config6CreateSchemaDto) => {
      const schema = await dispatch(addSchema(componentId, data));

      if (schema) {
        Router.push(
          '/config/components/[componentId]/schemas/[schemaId]',
          `/config/components/${componentId}/schemas/${schema.id}`
        );
      }
    },
    [dispatch]
  );

  return (
    <Layout
      variant="config"
    >
      <h3>Add Schema</h3>
      <SchemaBuilder 
        onSave={handleSave}
      />
    </Layout>
  );
};
...