Я пытался использовать API ReactContext, где конечный компонент (внутренний) пытается отправить сообщение корневому компоненту (приложение). В приведенном ниже примере Val и функция, используемая для обновления Val, предоставляются с использованием контекста. Проблема здесь заключается в том, что componentDidUpdate () не вызывается в приложении, даже если щелкнуть Click me.
class App extends React.Component {
static contextType = ThemeContext;
componentDidUpdate() {
console.log("update", this.context.val);
}
render() {
return (
<MyProvider>
<Inner />
</MyProvider>
);
}
}
class Inner extends React.Component {
static contextType = ThemeContext;
render() {
return <div onClick={() => this.context.load(1234)}>Click me</div>;
}
}
Я добавил только соответствующий код выше. Вот пример codesandbox для этого примера. Я ожидаю, что componentDidUpdate будет вызываться в приложении при нажатии Click Me. По сути, я ищу способ слушать изменения контекста в компоненте приложения.