Bru*_*our -1 javascript reactjs next.js
我有一个“接受”按钮,我希望 5 秒后自动单击该按钮。我正在将 React 与 Next.js 结合使用。按钮代码为:
<button name="accept" className="alertButtonPrimary" onClick={()=>acceptCall()}>Accept</button>
Run Code Online (Sandbox Code Playgroud)
如果我做不到这一点,我想了解原因,这样我就可以提高我的 React 和 Next.js 技能。
我猜您希望在渲染后 5 秒激活此功能,在这种情况下,请将 setTimeout 放在 useEffect 挂钩内,如下所示。这将在渲染完成后调用钩子中的任何内容。尽管从技术上讲这并没有激活按钮单击事件。
useEffect(() => {
setTimeout(() => {
acceptCall()
}, timeout);
}, [])
Run Code Online (Sandbox Code Playgroud)
在这种情况下你应该像这样使用 ref ,
const App = () => {
const ref = useRef(null);
const myfunc = () => {
console.log("I was activated 5 seconds later");
};
useEffect(() => {
setTimeout(() => {
ref.current.click();
}, 5000); //miliseconds
}, []);
return (
<button ref={ref} onClick={myfunc}>
TEST
</button>
);
};
Run Code Online (Sandbox Code Playgroud)
希望这就是您正在寻找的。
https://codesandbox.io/s/use-ref-forked-bl7i0?file=/src/index.js
| 归档时间: |
|
| 查看次数: |
11106 次 |
| 最近记录: |