Я пытаюсь добавить заставку до загрузки React.
, так как я использую скрипты реакции / приложение реакции, мой index.tsx содержит только эту часть:
ReactDOM.render(<App />, document.getElementById("root"));
Я пытался добавить свой собственный div на той же странице, но он не отображается.
Я хотел бы отобразить простой пустой экран с моим изображением-заставкой на 1-секундном таймере, прежде чем реагировать на нагрузки, чтобы избежать / скрыть смещение элементов рендеринга.
** Если я добавлю экран в app.tsx, сдвиг произойдет до загрузки экрана
обновление
Как указал Rishabh ниже, index.html находится в / public папке. Таким образом, я в конечном итоге сочетал 2 подхода.
добавить экран перед началом реакции:
<div id="root">
<div id="dimScreen">
<img src="/img/logo.png" />
</div>
</div>
загрузка правильного загрузчика без верха на .5 - 1 сек.
class App extends Component {
state = {
loading: true
}
componentDidMount() {
setTimeout(() => {
this.setState({ loading: false });
}, 1000);
}
render() {
return (
<React.Fragment>
{
this.state.loading ?
<Loader />
: (
<div className="app">
<Header />
<MyComponent />
</div>
)
}
</React.Fragment>
);
}
}
Пока этот подход работает лучше, но будет обновляться, если я найду проблемы или что-то лучше