Предполагая, что ваш компонент Login обернут на ContextProvider
выше в иерархии, вы можете получить доступ к контексту внутри компонента класса, определив stati c contextType.
Для этого вам нужно экспортировать контекст из ContextProvider сначала похож на
export {ContextProvider, ContextConsumer, MyContext };
, а затем использует его как
import React, { Component } from 'react'
import {MyContext} from "./ContextProvider";
class Login extends Component {
static contextType = MyContext;
onHandleSubmit = () => {
// on submit login success :
this.context.handleLogin();
}
render() {
return (
<div> {/* render content here */} </div>
)
}
}
Однако, если вы используете версию реакции между 16.3.0 и 16.6.0, вам нужно передать контекст используя шаблон реквизита рендера, например
class Login extends Component {
onHandleSubmit = () => {
// on submit login success :
this.props.context.handleLogin();
}
render() {
return (
<div> --- not expected here ---- </div>
)
}
}
export default (props) => (
<ContextConsumer>
{values=> <Login {...props} context={values} />}
</ContextConsumer>
)