,可以通过以下步骤实现:
下面是一个示例代码:
// 父组件
import React, { useState } from 'react';
import ChildComponent from './ChildComponent';
const ParentComponent = () => {
const [timerValue, setTimerValue] = useState(null);
const handleTimerValue = (value) => {
setTimerValue(value);
};
return (
<div>
<h1>Parent Component</h1>
<p>Timer Value: {timerValue}</p>
<ChildComponent onTimerValue={handleTimerValue} />
</div>
);
};
export default ParentComponent;
// 子组件
import React, { useEffect } from 'react';
const ChildComponent = ({ onTimerValue }) => {
useEffect(() => {
const timer = setInterval(() => {
const value = Math.random(); // 模拟计时器的值
onTimerValue(value); // 将值通过回调函数传递给父组件
}, 1000);
return () => {
clearInterval(timer); // 清除计时器
};
}, [onTimerValue]);
return (
<div>
<h2>Child Component</h2>
</div>
);
};
export default ChildComponent;
在上述示例中,父组件通过useState创建了一个状态变量timerValue,用于存储从计时器传递过来的值。父组件还定义了一个回调函数handleTimerValue,用于接收子组件传递过来的值,并更新timerValue的值。
子组件通过useEffect创建了一个计时器,每隔1秒发送一个随机值给父组件。子组件还接收了父组件传递过来的回调函数onTimerValue,并在计时器中调用该函数将值传递给父组件。
这样,当子组件中的计时器触发时,会将值传递给父组件,并更新父组件的状态变量timerValue。父组件会重新渲染,并显示最新的计时器值。
推荐的腾讯云相关产品:无
领取专属 10元无门槛券
手把手带您无忧上云