我是否在setState中正确调用了此函数?

时间:2019-06-30 15:01:04

标签: javascript reactjs

我正在尝试在React应用中显示时间,并希望以12小时格式显示。

如果小时数显示13或更多,我已经编写了一个删除'12'的函数。我想将该函数传递给setState,但继续出现语法错误。

setTimeDate() {
    const hours = currentDate.getHours()
    const min = currentDate.getMinutes()
    this.setState(formattedHours(prevState, this.props) {  
      time: `${hours}:${min}`
      }
    )
  }

formattedHours() {
  if(hours > 13) {
    afternoonHours = `${(hours - 12)} "PM"`
  } else {
    morningHours = `${hours} "AM"`
    }
 }

render() {
    const { time } = this.state
    return (
      <div className="showTime">
        { time }
      </div>
    )
  }

我应该看下午1:31,但是在setState行中只是出现语法错误。我无法超越。

除此之外,如何通过以前的状态?

1 个答案:

答案 0 :(得分:0)

要传递以前的状态,可以使用生命周期方法 componentDidUpdate(prevProps,prevState),该方法接收prevState和prevProps作为参数,因此您可以在此处访问它们。