Когда я обновляю состояние в другом компоненте, я не могу повторно обработать провайдера в ContextProvider.js
, и, следовательно, данные о потребителе не изменяются.
ContextProvider.js
export const AppContext = React.createContext({basketNumber:0});
export class ContextProvider extends React.PureComponent {
state = {
basketNumber:0,
};
render() {
return (
<AppContext.Provider value={this.state}>
{this.props.children}
</AppContext.Provider>
);
}
}
в другом компоненте я называю это:
import { AppContext } from './../../../components/ContextProvider';
export default class Example extends React.PureComponent {
static contextType = AppContext;
}
в example
классе, я могу позвонить basketNumber
this.context.basketNumber
Но как мне его обновить?
Я пробовал это:
this.context.basketNumber = 10;
// EDIT
Я добавляю этот код к провайдеру контекста:
addNumber(number) {
this.setState({basketNumber:id});
};
и попробуйте назвать его в example
классе:
this.context.addNumber(10);
Но я получаю эту ошибку:
_this.context.addNumber - это просто функция