useEffect(() => {
const fetchData = async (url: string, data: any[] = []) => {
const res = await fetch(url);
const json = await res.json();
if(json.pagination.links.next){
await fetchData(json.pagination.links.next, data)
}
data.push(json.data);
return data;
};
fetchData("https://gorest.co.in/public/v1/users").then(setData);
}, [url]);
useEffect(() => {
const fetchData = async (url: string) => {
let data: any[] = [];
do {
const res = await fetch(url);
const json = await res.json();
data.push(json.data);
url = json.pagination.links.next;
} while (url);
return data;
};
fetchData("https://gorest.co.in/public/v1/users").then(setData);
}, [url]);
any
- расставить твои типы надо. <div className="App">
<Preloader>
<h1>
Hello CodeSandbox
</h1>
</Preloader>
<Preloader>
<h2>
Start editing to see some magic happen!
</h2>
</Preloader>
</div>
useLayoutEffect(() => {
const parent = ref.current.parentNode; // ref - корневой элемент
parent.classList.add(preloader.wrapper);
return () => {
parent.classList.remove(preloader.wrapper);
}
}, []);
const useMounted = (callback) => useEffect(callback, []);
Это не устранит корень проблемы, но в данном конкретном случае самое то.import { DocumentRenderer } from '@keystone-next/document-renderer';
const renderers = {
inline: {
bold: ({ children }) => {
return <strong>{children}</strong>;
},
},
block: {
paragraph: ({ children, textAlign }) => {
return <p style={{ textAlign }}>{children}</p>;
},
},
};
<DocumentRenderer document={document} renderers={renderers} />;
jsx
это вообще отношения не имеет.if else
, как-то используй результат(например return isOnSa...
), или отключи\заигнорь правило - никакой реальной проблемы тут нет, просто такие конструкции зачастую могут быть ошибкой(когда ты просто забыл использовать результат). React.KeyboardEvent
- это синтетическое событие, которое генерируется в React. KeyboardEvent
- это оригинальное событие, которое генерируется в браузере.KeyboardEvent
лежит в event.nativeEvent
у React.KeyboardEvent
.const closeByESC = (event: KeyboardEvent | React.KeyboardEvent) => {
document.addEventListener('keydown', closeByESC);
npm run build
(который react-scripts build
), либо делай npm run eject
и правь настоящий конфиг React'a.