Мое состояние выглядит следующим образом:
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>
);
};