Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs “反应钩”;“使用状态”;无法在类组件中调用_Reactjs - Fatal编程技术网

Reactjs “反应钩”;“使用状态”;无法在类组件中调用

Reactjs “反应钩”;“使用状态”;无法在类组件中调用,reactjs,Reactjs,不能在类组件中调用React挂钩“useState”。必须在React函数组件或自定义React钩子函数React钩子/钩子规则中调用React钩子 这是我的密码: import './App.css'; import { Row, Col, Container } from 'react-bootstrap'; import ListGame from './components/ListGame'; import Konten from './components/Konten'; impo

不能在类组件中调用React挂钩“useState”。必须在React函数组件或自定义React钩子函数React钩子/钩子规则中调用React钩子

这是我的密码:

import './App.css';
import { Row, Col, Container } from 'react-bootstrap';
import ListGame from './components/ListGame';
import Konten from './components/Konten';
import NavbarComponents from './components/NavbarComponents';
import Sidebar from './components/Sidebar';
import { GiHamburgerMenu } from 'react-icons/gi';
import { useState } from 'react';
import React, { Component } from 'react'

export default class App extends Component {
  
  render() {
    const [ showNav, setShowNav] = useState(false)
    return (
      <div className='App'>
      <navbar><NavbarComponents /></navbar>
      <header>
        <GiHamburgerMenu onClick={() => setShowNav(!showNav)}/>
      </header>
      <Sidebar show={showNav}/>
      <div className="mt-3">
          <Konten show={showNav}/>
      </div>
      </div>
    )
  }
}
import'/App.css';
从'react bootstrap'导入{Row,Col,Container};
从“./components/ListGame”导入ListGame;
从“./components/Konten”导入Konten;
从“./components/NavbarComponents”导入NavbarComponents;
从“./components/Sidebar”导入侧栏;
从'react icons/gi'导入{GiHamburgerMenu};
从“react”导入{useState};
从“React”导入React,{Component}
导出默认类应用程序扩展组件{
render(){
const[showNav,setShowNav]=useState(false)
返回(
设置显示导航(!显示导航)}/>
)
}
}

是,您只能在使用挂钩的功能组件中使用
setState

在类组件中,在
render
方法上方,应该像这样初始化状态:

constructor() {
  super();

  this.state = {
    showNav: false
  };
}
您可以通过执行以下操作来切换showNav值:

  render() {
    return (
      <div className='App'>
      <navbar><NavbarComponents /></navbar>
      <header>
        <GiHamburgerMenu onClick={() => this.setState({ showNav: !this.state.showNav })} />
      </header>
      <Sidebar show={this.state.showNav}/>
      <div className="mt-3">
          <Konten show={this.state.showNav}/>
      </div>
      </div>
    )
  }
render(){
返回(
this.setState({showNav:!this.state.showNav})}/>
)
}

这是否回答了您的问题?我想应该是这样
this.setState({showNav:!this.state.showNav})}/>
噢,是的,没错!我尝试了你的两个代码,但现在我面临新的错误,他说:第25:22行:“showNav”没有定义no undef,这应该是什么?哦,你需要更改
,我现在更新了我的答案,成功了!:)谢谢你的帮助!!