微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ReactJS时间戳

如何解决ReactJS时间戳

这是我的代码-

const [time,setTime] = useState('')

const getRefresh = () => {
        pageContext.refreshList()
        var today = new Date()
        var currentTime = today.getHours() + ':' + today.getMinutes() + ':' + today.getSeconds();
        setTime(currentTime)
    }

<div className="bttn-layout">
    <LastRefreshed getRefresh={time}/>
    <Button label="Refresh" onClick={e =>getRefresh()} />
</div>

这是我的“ LastRefreshed”组件中的代码-

const LastRefreshed = (props) => {

   
    return (
        <div>
            <p>Last Refreshed: {props.time} </p>
        </div>

    )
}


export default LastRefreshed;

理想地,当单击刷新按钮时,它将调用getRefresh函数,该函数将更新我的主页上的列表以及将当前时间戳传递到“时间”状态。然后,此状态由我的“ LastRefreshed”函数使用,因此将显示最近刷新的时间戳。 目前,上面的代码无法正常工作。肯定会调用getRefresh函数,但是我正在努力抽出时间在LastRefreshed组件中显示。我想知道是否是因为状态未正确更新?任何帮助表示赞赏!

解决方法

<div className="bttn-layout">
    <LastRefreshed time={time}/>
    <Button label="Refresh" onClick={e =>getRefresh()} />
</div>

您应该将LastRefreshed的道具名称更改为time。

,

更改
<p>Last Refreshed: {props.time} </p><p>Last Refreshed: {props.getRefresh} </p>

<LastRefreshed getRefresh={time}/><LastRefreshed time={time}/>

prop参数的名称与组件中使用的名称不符

,

<LastRefreshed time={time}/>

代码:-

const [time,setTime] = useState('');

const getRefresh = () => {
        pageContext.refreshList();
        var today = new Date();
        var currentTime = today.getHours() + ':' + today.getMinutes() + ':' + today.getSeconds();
        setTime(currentTime);
    }

<div className="bttn-layout">
    // component property should be `time` instead of `getRefresh`
    <LastRefreshed time={time}/> 
    //Note:- As you are not passing any arguments,directly mention getRefresh function
    <Button label="Refresh" onClick={getRefresh} /> 
</div>

LastRefreshedComponent:-

注意:-这里遵循箭头函数的简写语法

 // Also used object destructuring for the props
 const LastRefreshed = ({time}) =>  
             <div>
                <p>Last Refreshed: {time} </p>
            </div>;
    
    export default LastRefreshed;

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。