首页 > 解决方案 > 在这种情况下如何将状态变量作为字符串传递?

问题描述

我正在使用 NPM 包react-date-countdown-timer我应该按照这个格式来实现倒数计时器:

<DateCountdown dateTo='January 01, 2023 00:00:00 GMT+03:00' callback={()=>alert('Hello')}  />

我想应用这个包的方式是将属性dateTo设置为动态日期(根据事件而变化)。这个动态日期被保存到一个名为 closingTime 的状态变量中。为了实现这一点,在页面的返回函数中,我执行以下操作:

<DateCountdown dateTo={this.state.closingTime} callback={this.endAuction} />

通过这样做,NaN NaN NaN NaN 将显示在倒数计时器中。当我将状态变量替换为其字符串内容“2021 年 3 月 26 日 22:00:01 GMT+04:00”时,它运行良好。

在这种情况下,如何将状态变量作为字符串传递?

标签: javascriptreactjsstringnpmsyntax

解决方案


好像您的关闭时间变量是一个日期对象。您可以使用 dateObject.toString() 方法将 dateObject 转换为 javascript 中的字符串。因此,您可以通过以下方式将字符串保存在您的状态中

this.setState(state => {
  return { closingTime: newClosingTime.toString() }
})

或者,您可以将日期对象保存在状态中,然后将其转换为字符串,同时将其作为道具传递

<DateCountdown dateTo={this.state.closingTime.toString()} callback={this.endAuction} />

推荐阅读