Читая эту статью https://www.netlify.com/blog/2019/03/11/deep-dive-how-do-react-hooks-really-work/, я пытаюсь создать эквивалентный исходный код для useState
. Итак, вот код:
const MyReact = (function() {
let _val;
return {
useState(initialValue) {
_val = _val || initialValue;
function setState(newVal) {
_val = newVal
}
return [_val, setState];
}
}
})()
function Counter() {
const [count, setCount] = MyReact.useState(0);
setCount(2);
setTimeout(()=>console.log(count), 2000);
}
Counter(); // 0
Приведенный выше код не соответствует useState
logi c, поскольку он должен выводить 2. Что я должен изменить в клоне useState
в упрощенном виде