2. Написать в поддержку платежной системы и попросить добавить Access-Control-Allow-Origin: *
Поднять свой прокси сервер для обхода CORS
fetch
возвращает промис, а у промиса нет метода json()
. let commits = await fetch(url).json();
равна let commits = await (fetch(url).json());
. Поэтому сначала надо получить результат промиса, а потом уже работать с результатом, а записывать в переменную, или писать все в одну строчку - не имеет значения. const ImageSelect: React.FC<{
max?: number;
}> = ({ max = 4 }) => {
const [images, setImages] = React.useState<ImageObj[]>([])
const onSelectImage = React.useCallback((e: React.ChangeEvent<HTMLInputElement>) => {
const files = Array.from(e.target.files || []).slice(0, max);
setImages(files.map((file) => ({
file,
blobUrl: URL.createObjectURL(new Blob([file]))
})));
}, [])
return <input type="file" accept="image/*" onChange={(e) => { onSelectImage(e) }} />
}
input.scrollWidth
. Далее надо к этой величине добавить поправку на наличие границ и внутренних отступов, только если получившийся размер оказался чуть меньше желаемого.const resizeInput = (input) => {
input.style.removeProperty("width");
const { borderLeftWidth, borderRightWidth } = getComputedStyle(input);
if (input.clientWidth < input.scrollWidth) {
input.style.setProperty(
"width",
`calc(${input.scrollWidth}px + ${borderLeftWidth} + ${borderRightWidth})`
);
}
};
document.querySelectorAll("input").forEach((input) => {
input.addEventListener("input", () => {
resizeInput(input);
});
resizeInput(input);
});
someParam
это массив, а не осмысленный объект? Пока его суть остается неопределенной, будут возникать неопределенные ситуации, когда непонятно что делать, падать в ошибку или городить полотно проверок. А ведь можно вынести всю валидацию на этап создания объекта, там же выбрасывать ошибки, так будет явно понятно, что ошибка в данных, а не где-то в логике, где данные уже должны быть. Но непонятно, что делать на стороне сервера, как используя публичный ключ расшифровать