Вы не принимаете одностороннюю реакцию на поток данных, используя подобные ссылки; он может вести себя не так, как вы ожидаете;
Вы должны передать функцию logi c родительского обработчика состояния в дочерний компонент, а затем дочерний компонент вызовет ее с правильным значением; в результате ваше родительское состояние будет обновлено, и вы получите хороший и чистый односторонний поток данных; Вы можете использовать это в любом компоненте, так как вы не связываетесь с this
привязками в функциональных компонентах;
Этот пример демонстрирует это в действии:
function App() {
// Define your state
const [someState, setSomeState] = useState(0);
return (
<div className="container">
<Child parentCallback={setSomeState} />
</div>
);
}
class Child extends Component {
render(){
return(
<div>
<button
onClick={() => this.props.parentCallback(/*someValue*/)}
>
click me!
</button>
</div>
)
}
}