Я использую Apollo
, а также react-adopt
, что мне интересно, если это вызывает некоторые проблемы.
Я просто хотел бы подтвердить, что это действительно, как изменить контекст в обычной ситуации?
Моя проблема в том, что при обновлении контекста с помощью <LoadingProvider />
я не вижу изменений в пользовательском интерфейсе, которые указывают на его успешность.Я хотел бы, чтобы приложение обновлялось при изменении контекста.
Context & Consumer
const LoadingContext = React.createContext({
loading: false,
});
export const LoadingProvider = LoadingContext.Provider;
export const LoadingConsumer = LoadingContext.Consumer;
class LinearIndeterminate extends React.PureComponent {
render() {
const { classes } = this.props;
return (
<LoadingConsumer>
{ ({loading}) => {
console.info(loading);
return <div className={classes.root}>
{loading &&
<LinearProgress color="secondary"/>
}
</div>
}}
</LoadingConsumer>
);
}
}
Поставщик
export const Mutation = ({ render, enqueueSnackbar, ...props }) => {
return (
<ApolloMutation {...props}>
{(mutation, result, err) => {
if (err) Logger(err);
if (result && !result.loading && result.data && props[props.refetch]) {
props[props.refetch].refetch();
}
return <LoadingProvider value={{loading: true}}>{render({ mutation, result })}</LoadingProvider>;
}}
</ApolloMutation>
);
};
<LoadingConsumer />
не выполняет повторную визуализацию послеЯ пробежал <LoadingProvider value={{loading: true}}>