【问题标题】:How can I use date component in a React form如何在 React 表单中使用日期组件
【发布时间】:2020-10-01 03:44:27
【问题描述】:

我创建了一个表单,它有一个日期选择器字段。我想使用date-picker 组件,但无法弄清楚如何让它工作。我正在使用 cdn 而不是 npm 并且不确定我是否遗漏了什么 关键。

class Request extends React.Component{
  constructor(){
    super()
    this.state = {
      location:'',
      date: ''
    }
    this.handleLocation = this.handleLocation.bind(this)
  }
  handleDateSelect(e){
     this.setState({
      date: e.target.value
    })   
  }
  handleLocation(e){
    this.setState({
      location: e.target.value
    })
  }
  handleDateChange(e){
    this.setState({
      date: e.target.value
    })
  }
  render(){
    return(
      <div>
          Today's Date:  <DatePicker selected={this.state.date} onSelect={this.handleDateSelect} onChange={this.handleDateChange} /><br />
          Location: <input type="text" name="location" onChange={this.handleLocation} value={this.state.location} />
        {this.state.location}
      </div>
    )    
  }
}

我得到的错误是 Uncaught ReferenceError: useState is not defined 这是pen 了解更多上下文

【问题讨论】:

  • 在您的沙箱中,您有const [startDate, setStartDate] = useState(new Date());,您收到了错误消息。你正在使用旧的方式来定义状态并且你使用了 useState 并且没有从 React 导入?
  • 我可以使用cdn获取useState吗?

标签: javascript reactjs react-component


【解决方案1】:

你导入useState了吗?

import React, { useState } from 'react';

【讨论】:

  • 作为参考,您的 Request 类使用 useState 挂钩。所以我认为该错误与DatePIcker无关,您只是忘记在包含Request类的文件中导入钩子。
  • 如果我只是添加startDatesetStartDate 到状态呢?那行得通吗?
  • 是的,useState 钩子只针对功能组件,不针对 Class 组件。但是 setStartDate 是您定义的用于更新该状态(开始日期)的函数。所以不需要添加它来添加状态。
  • 对不起,我很困惑。我有点新反应。我的codepen设置错了吗?如果我创建一个setStartDate 函数,我该如何调用它? codepen.io/isogunro/pen/OJNeLwY?editors=0011
  • codesandbox.io/s/compassionate-benz-rho9y?file=/src/App.js 这是基于您的代码的 datePicker 的工作示例。希望对你有帮助
猜你喜欢
  • 1970-01-01
  • 2023-01-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-06
  • 1970-01-01
  • 1970-01-01
  • 2020-10-29
相关资源
最近更新 更多