Я упрощаю попытку обновления контекста с помощью React.
Мне бы хотелось, чтобы при нажатии на заголовок Hello CodeSandbox
отображалась строка загрузки с данными context api
.
Пример кода:
https://codesandbox.io/s/vyq3r7k4o5
Загрузка с использованием контекста
export const LoadingState = {
loading: false
};
const LoadingContext = React.createContext(LoadingState);
export const LoadingProvider = LoadingContext.Provider;
export const LoadingConsumer = LoadingContext.Consumer;
const LinearIndeterminate = function() {
const { loading } = useContext(LoadingContext);
return (
<div>
{loading && <LinearProgress color="secondary" />}
</div>
);
};
Потребитель
class App extends PureComponent {
state = {
loading: false
};
add = () => {
const currentState = this.state.loading;
this.setState({ loading: !currentState });
};
render() {
console.info(this.state);
return (
<div className="App">
<h1 onClick={this.add}>Hello CodeSandbox</h1>
<Loading />
<LoadingProvider value={this.state}>
{this.state.loading}
</LoadingProvider>
<h2>Start editing to see some magic happen!</h2>
</div>
);
}
}