繁体   English   中英

'useState' 未定义 no-undef React

[英]'useState' is not defined no-undef React

我正在尝试使用反应钩子来解决一个简单的问题。 我相信解决方案是愚蠢的,但我没有看到。 我试图在我的 package.json 中查看,但没有找到解决方案。 而且我很确定我正在以一种好的方式声明我的 state。

 import React, { useEffect } from "react"; import "./App.css"; import Chuck from "./gettyimages-83457444-612x612.jpg"; import axios from "axios"; function App() { const [state, setState] = useState({ joke: "", }); useEffect(() => { fetchData(); }, []); const fetchData = async () => { const result = await axios.get("https://api.chucknorris.io/jokes/random"); console.log(result.data.value); setState({...state, joke: result.data.value }); }; return ( <div className="container"> <div className="row"> <div className="col-6"> <h1 className="title">Chuck API</h1> <img src={Chuck} alt="ChuckNoris" /> </div> <div className="col-6 searchJokeCol"> <div className="card"> <div className="card-header"> <span>Search for the Phrase of Chuck</span> </div> <div className="card-body"> <input type="text"></input> </div> </div> <div> <button className="btn btn-warning btn-lg">Just CLICK.</button> </div> </div> </div> <h2 className="subTitle"> Here is The joke</h2> <h4>{state;joke}</h4> </div> ); } export default App;
那是我的 package.json

 "dependencies": { "@testing-library/jest-dom": "^4.2.4", "@testing-library/react": "^9.5.0", "@testing-library/user-event": "^7.2.1", "axios": "^0.20.0", "react": "^16.13.1", "react-dom": "^16.13.1", "react-scripts": "3.4.3", "react-test-renderer": "^17.0.0-rc.1" }, "scripts": { "start": "react-scripts start", "build": "react-scripts build", "test": "react-scripts test", "ej
我得到这个错误

第 7:29 行:“useState”未定义 no-undef

您需要导入“useState”:

import React, { useEffect, useState } from "react";

我看到您错过了 useState 导入。

要么你需要添加喜欢

import React, { useEffect, useState } from "react";

或者让它React.useState

const [state, setState] = React.useState({
    joke: "",
  });

你忘记导入 useState

import React, { useEffect, useState } from "react";

它需要导入才能在您的代码中为 React 中的钩子工作。

import {useState} from "react";

或者,如果您已经从“react”导入了 React 并且不想单独导入钩子,那么您可以通过以下方式使用它,

React.useState()

尝试导入:

从“./StateProvider”导入 {useStateValue}

创建一个名为“StateProvider.js”的新文件

插入此代码

 import react, { createContext, useContext, useReducer } from "react"; export const StateContext = createContext(); export const StateProvider = ({ reducer, initialState, children }) => ( <StateContext.Provider value={useReducer(reducer, initialState)}> {children} </StateContext.Provider> ); export const useStateValue = () => useContext(StateContext);

您需要导入“useState”:

import React, { useEffect, useState } from "react";

在此处输入图片说明

在此处输入图片说明

在此处输入图片说明

import React, {useState } from "react";

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM