gpt4 book ai didi

javascript - 如何在无状态函数中使用 ref?

转载 作者:行者123 更新时间:2023-11-29 23:19:34 25 4
gpt4 key购买 nike

我是 React 新手,这是我的代码

它在控制台打印undefined,如何让它工作?

const Example = () => {
let node;
return (
<div>
<p ref={el => (node = el)}>hello world!</p>
{console.log(node)}
</div>
);
};

const rootElement = document.getElementById("root");
ReactDOM.render(<Example />, rootElement);

最佳答案

这是因为如果您运行以下代码,您在其中记录节点的 block 与功能 block 不同:

const Example = () => {
let node;
return (
<div>
<p
ref={el => {
node = el;
console.log(node);
}}
>
hello world!
</p>
{console.log(node)}
</div>
);
};

你会看到 node引用 <p>hello world!</p>在您的控制台中。如果你想使用 ref 你的方式是正确的你只需要将它设置为具有良好范围的适当变量例如使用 window.node测试链接是:https://codesandbox.io/s/kxj92vojmo .
解决您问题的最佳方法是使用状态管理器作为 MobX 在您的 View 和 View 模型之间共享引用和状态

关于javascript - 如何在无状态函数中使用 ref?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51229968/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com