【发布时间】:2021-09-30 22:07:13
【问题描述】:
可能是新手错误或误用,但我们开始吧。
错误:const [color, setColor] = useState([])
错误:无效的挂钩调用。 Hooks 只能在函数组件的主体内部调用。这可能是由于以下原因之一:。
我错过了什么?
组件代码: ...
this.state = {
nbrrecs:'',
pageOfItems: [],
pageSize: 5,
fcolor:''
};
this.setState({fcolor:GetColor(127,90)});
render(){
return(
<h2 className="text-center">{this.fcolor}</h2>
<td style={{color: GetColor(127,90)}} >{GetColor(127,90)} </td>
...
GetColor.js ...
import { useEffect, useState } from "react";
import SiteReportCardMasterService from '../Services/SiteReportCardMasterService';
const GetColor = (id,rptvalue) =>
{
const [color, setColor] = useState([])
useEffect(() =>{
SiteReportCardMasterService.getSiteReportCardMasterById(id).then( (res) =>{
if (rptvalue === 0) setColor(res.data.sitereportcardmasterColore)
if (rptvalue < 70) setColor(res.data.sitereportcardmasterColord)
if (rptvalue >= 70 && rptvalue <80) setColor(res.data.sitereportcardmasterColorc)
if (rptvalue >= 80 && rptvalue <90) setColor(res.data.sitereportcardmasterColorb)
if (rptvalue >= 90) setColor(res.data.sitereportcardmasterColora)
})
})
return color
};
export default GetColor;
...
【问题讨论】:
-
现在唯一的错误是名称
GetColor对自定义钩子(使用其他钩子的函数)无效。它应该被称为useGetColor。 (这会导致第二条错误消息)。否则一切看起来都正常。 -
通过应用良好的代码格式,您还将为自己和您的同事提供很多帮助。
标签: reactjs function react-hooks return-value