当前位置: 首页 > 知识库问答 >
问题:

我在setState中调用此函数是否正确?[副本]

陈康胜
2023-03-14

我试图在反应应用程序中显示时间,并希望以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个答案

叶智
2023-03-14

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

 类似资料:
  • 问题内容: 如果我这样做: 在那个func里面引用foo是错误的吗? 问题答案: 很好,只有在上下文变化时才需要注意(在局部指针变量的情况下): 还请参见:https : //www.goinggo.net/2014/06/pitfalls-with-closures-in- go.html

  • 当我使用这段代码解析一个日期字符串时,时间解析不正确。此代码打印。我应该使用什么日期格式来分析这个输入?

  • React是否在每次调用时重新呈现所有组件和子组件? 如果是,为什么?我认为这个想法是,当状态改变时,只会根据需要提供少量的反应。 我希望只有在数据发生更改时才会出现呈现。 下面是示例的代码,作为JS Fiddle和嵌入的代码片段:

  • 问题内容: 我想在Java中使用池化连接(因为每个线程创建一个连接非常昂贵),所以我正在使用该对象。我正在跨线程保留我的数据源。因此,我在整个应用程序中仅使用一个数据源,如下所示: 现在,我已经创建了数据源,然后在每个单独的线程中执行以下操作: 我猜我很困惑, 这真的 是在 获取池连接吗? 这个线程安全吗?我注意到PooledConnection具有诸如notify()和wait()之类的方法…这

  • 我是React的新手,我正在尝试用API编写一个应用程序。我一直得到这个错误: TypeError:This.SetState不是函数 当我尝试处理API响应时。我怀疑这装订有问题,但我不知道如何修理它。下面是我的组件的代码:

  • 我的问题是:为什么调用不更快或更好,从而更可取?