【问题标题】:How to pass a state variable as a string in this case?在这种情况下如何将状态变量作为字符串传递?
【发布时间】:2021-06-23 23:42:22
【问题描述】:

我正在使用 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”时,它运行良好。

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

【问题讨论】:

    标签: javascript reactjs string npm syntax


    【解决方案1】:

    似乎您的 closingTime 变量是一个日期对象。您可以使用 dateObject.toString() 方法将 dateObject 转换为 javascript 中的字符串。因此,您可以通过

    将字符串保存在您的状态中
    this.setState(state => {
      return { closingTime: newClosingTime.toString() }
    })
    

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

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

    【讨论】:

    • 感谢您的帮助!但两种方法都不起作用。
    • 你能分享一个 jsfiddle 链接,我可以在其中查看代码以获取更多详细信息
    【解决方案2】:

    试着把它改成这样的字符串

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

    【讨论】:

    • 感谢您的帮助!但是这个方法不起作用
    • this.state.closingTime的内容是什么?
    • 当我登录到控制台时,这是内容“2021 年 3 月 26 日 22:00:01 GMT+04:00”。编辑:它现在有效!我不得不将关闭时间的初始化从空字符串更改为 0。谢谢!
    猜你喜欢
    • 2018-12-26
    • 1970-01-01
    • 2021-09-14
    • 2021-01-04
    • 2021-01-21
    • 1970-01-01
    • 1970-01-01
    • 2012-05-12
    • 1970-01-01
    相关资源
    最近更新 更多