Я экспериментирую с контекстом API React,
Пожалуйста, отметьте someComponent
функцию, где я передаю событие клика (updateName
функция), затем state.name
обновление значения из GlobalProvider
функция
после обновления state.name
будет отображаться в браузере, но не получит обновленное значение в консоли (я вызвал console ниже функции линии щелчка, чтобы получить обновленное значение ниже)
Почему бы не получить обновленное значение в этой консоли, но он попадает внутрь рендера (в браузере)?
Пример кода
App function
<GlobalProvider>
<Router>
<ReactRouter />
</Router>
</GlobalProvider>
=== 2
class GlobalProvider extends React.Component {
state = {
name: "Batman"
};
render() {
return (
<globalContext.Provider
value={{
name: this.state.name,
clickme: () => { this.setState({ name: "Batman 2 " }) }
}}
>
{this.props.children}
</globalContext.Provider>
);
}
}
export default GlobalProvider;
== = 3
const SomeComponent = () => {
const globalValue = useContext(globalContext);
const updateName = ()=> {
globalValue.clickme();
console.log(globalValue.name ) //*** Here is my concern - not getting updated value here but , getting updated value in browser
}
return (
<div onClick={(e)=> updateName(e) }>
{globalValue.name}//*** In initial load display - Batman, after click it display Batman 2
</div>) }