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

无法在react类中声明常量

澹台景辉
2023-03-14

我试图在react类中实现datepicker,在这个过程中,我在react类中声明了const,我正在处理这个类,并且得到了解析错误。有人能帮个忙吗申报有什么问题吗?

import React,{useState} from 'react';
import ReactDOM from 'react-dom';
import {Card, Container,Table,Form,InputGroup,Col,Button} from 'react-bootstrap';
import DatePicker from "react-datepicker";
import "react-datepicker/dist/react-datepicker.css";
import '../css/category.css';


class Categories extends React.Component{

  const date = useState(new Date());
  
   constructor(props){
     super(props);
   }

    componentDidMount() {
        document.title="Categories";
    }
   render(){

        return(<div>
            <Container fluid className="categorycardcont">
                <Card border="info">
                    <Card.Header className="categorycarddheader">CATEGORY SEARCH</Card.Header>
                    <Card.Title className="categorycardtitle"> Here one can find the category details involved in WebSite construction</Card.Title>
                    <Card.Body>
                      <Form>
                        <Form.Row className="align-items-center">
                          <Col sm={3} className="my-1">
                            <Form.Label>Category</Form.Label>
                            <Form.Control as="select">
                              <option>Please select Category here</option>
                              <option>Food</option>
                              <option>Travel</option>
                              <option>Restaurant</option>
                              <option>Technology</option>
                              <option>Gadgets</option>
                            </Form.Control>
                          </Col>
                          <Col sm={3} className="my-1">
                            <Form.Label>Created by</Form.Label>
                            <InputGroup>
                              <InputGroup.Prepend>
                                  <InputGroup.Text>@</InputGroup.Text>
                              </InputGroup.Prepend>
                              <Form.Control id="inlineFormInputGroupUserName" placeholder="UserName" />
                            </InputGroup>
                          </Col>
                          <Col sm={2} className="my-1">
                            <Form.Label>Created on</Form.Label>
                            <InputGroup>
                              <DatePicker selected={date}/>
                            </InputGroup>
                          </Col>
                          <Col sm={1} className="my-1">
                            <Form.Label>Active</Form.Label>
                            <Form.Check type="checkbox" id="autoSizingCheck2" className="activeCheckbox"/>
                          </Col>
                          <Col sm={1} className="searchButton">
                            <Button variant="success">Click Me!</Button>
                          </Col>
                        </Form.Row>
                      </Form>
                    </Card.Body>
                </Card>
            </Container>
            <Container fluid className="categorytablecont">
                <Table striped bordered hover variant="dark">
                    <thead>
                    <tr>
                        <th>Category</th>
                        <th>Description</th>
                        <th>Created By</th>
                        <th>Created On</th>
                        <th>Updated By</th>
                        <th>Updated On</th>
                    </tr>
                    </thead>
                </Table>
            </Container>
        </div>
);
    }
}

export default Categories;

我得到下面的错误。

未能编译/src/组件/类别。js行11:9:解析错误:意外标记

9 |类别类别。组件{10|

11|const date=useState(new Date()); | ^ 12|
13|构造函数(props){14|超级(props);此错误发生在构建时间,不能被驳回。

共有3个答案

冯星剑
2023-03-14

看起来您对钩子的使用感到困惑,钩子只能在功能组件中使用,所以您的功能组件代码如下所示

function Categories(props) {
 const date = useState(new Date());

 useEffect(() => {
  // is equivalent to didmount
  document.title = "Categories";
 
 }, [])

return (
 //// return what you are rendering
 )

}
 
王伯寅
2023-03-14

不能在类组件中使用useState。它们应该用于功能组件。您应该将代码更改为:

constructor(props){
   super(props);
   this.state = {
       myDate: new Date()
   };
}

在这里,您可以找到有关Hooks的更多信息。

苏麒
2023-03-14

您不能在类组件中使用钩子。创建一个默认日期如下的状态,

 constructor(props) {
    super(props);
    this.state = {
      date: new Date()
    };
  }

并在模板中访问它,

 <InputGroup>
   <DatePicker selected={this.state.date} />
  </InputGroup>

工作代码-https://codesandbox.io/s/elated-waterfall-s8n7c?file=/src/App.js

 类似资料:
  • 问题内容: 我想在中实现常量,因为在代码中找到常量是很有意义的。 到目前为止,我一直在使用静态方法实现以下变通方法: 我知道有可能摆弄原型,但许多人建议不要这样做。 有没有更好的方法在ES6类中实现常量? 问题答案: 您可以执行以下操作: 从 模块中 导出a 。根据您的用例,您可以: 并在必要时从模块导入该文件。或者,基于您的静态方法思想,您可以声明一个get访问器: 这样,您将不需要括号: 然后

  • 问题内容: 我在package中有2节课。接口类及其实现类。在具有类的文件中,出现以下错误:。 我正在使用Eclipse Helios和 删除和添加JRE的标准解决方案不起作用。我该如何解决? 编辑: 代码: Class: Class: 项目结构:ProjectName-> Java资源-> com.jax-> Class ,Class 问题答案: Java 8支持接口中的默认方法。在JDK 8中

  • 问题内容: 我试图在react-js类中声明一个变量。该变量应该可以在不同的函数中访问。这是我的代码 在onMove上,this.test的值是不确定的。我知道我可以将值放在状态上,但我不想这样做,因为每次值更改时,都会调用render(),这是不必要的。我是新来的反应者,我做错了什么吗? 问题答案: 在React中使用ES6语法不会绑定到用户定义的函数,但是会绑定到组件生命周期方法。 因此,您声

  • 问题内容: 我们总是写: 题: 是在类中声明 常量 的唯一方法吗? 如果我改写的话,它还是一个 常量 还是一个 实例字段 ? 什么是 实例变量 ? 实例变量 和 实例字段有 什么区别? 问题答案: 您可以在Java 5及更高版本中使用一种类型,以达到您描述的目的。这是类型安全的。 A是一个实例变量。(如果它具有static修饰符,则它将成为一个静态变量。)常量仅表示该值不变。 实例变量是属于对象而

  • 在Java类中,我通常在单个常量文件中声明我的所有常量,并跨项目访问 如何在Kotlin中实现相同 Java代码:

  • 我最近将一个Laravel4.2项目迁移到了5.0。到目前为止,我已经完成了所有必要的步骤,但我不断得到一个错误。 无法声明类Controller,因为名称已在使用中 我的控制器已按照laravel在升级指南中提供的内容进行了更改。 此外,我已将其添加到我的composer.json.的类映射指令 到目前为止,我找不到任何解决方案,如果你们知道该怎么做,这将对我有很大帮助:)提前谢谢!