当前位置: 首页 > news >正文

买了网站 怎么做呢关键词优化课程

买了网站 怎么做呢,关键词优化课程,湖南做网站360o,建设机械网站热线电话文章目录 React Hook之钩子调用规则(不在循环、条件判断或者嵌套函数中调用)错误使用案例案例具体解决方法 React Hook之钩子调用规则(不在循环、条件判断或者嵌套函数中调用) hooks使用规则 只能在函数最外层调用 Hook。不要在…

文章目录

    • React Hook之钩子调用规则(不在循环、条件判断或者嵌套函数中调用)
      • 错误使用案例
      • 案例具体解决方法

React Hook之钩子调用规则(不在循环、条件判断或者嵌套函数中调用)

hooks使用规则

  • 只能在函数最外层调用 Hook。不要在循环、条件判断或者子函数中调用。
  • 只能在 React 的函数组件中调用 Hook。不要在其他 JavaScript 函数中调用。(还有一个地方可以调用 Hook —— 就是自定义的 Hook 中)

错误使用案例

代码:

  const useCustomItemRender = (originNode: React.ReactNode, file: CustomUploadFile) => {const [editing, setEditing] = useState(false);const [newName, setNewName] = useState(file.name);const handleEdit = () => {setEditing(true);};const handleSave = () => {setEditing(false);handleEditDescription(file.uid, newName);};const render = editing ? (<div><Inputvalue={newName}onChange={(e) => setNewName(e.target.value)}onPressEnter={handleSave}onBlur={handleSave}autoFocus/></div>) : (<div onClick={handleEdit}>{file.name}</div>);return render;};const customItemRender: ItemRender<CustomUploadFile> = (originNode, file) => {const render = useCustomItemRender(originNode, file);return render;};

报错:
React Hook “useCustomItemRender” is called in function “customItemRender: ItemRender” that is neither a React function component nor a custom React Hook function. React component names must start with an uppercase letter. React Hook names must start with the word “use”.

报错解释:
这个错误表明你在React函数组件中使用了名为useCustomItemRender的自定义钩子(Hook),而这个钩子的使用发生在一个内嵌函数customItemRender中。React的钩子(Hooks)只能在函数组件的主体或者其他钩子中调用,而不能在嵌套函数或者控制流逻辑中调用。这个规则被称为“钩子调用规则”。

解决方法:
确保useCustomItemRender只在组件的主体中调用一次。如果customItemRender是一个独立的函数,你应该将useCustomItemRender的调用移到customItemRender函数外部,确保它不会在customItemRender内部被调用。如果customItemRender是一个React组件,那么应该将useCustomItemRender的调用保持在该组件的主体中。

// 不正确的使用方式
function MyComponent() {function customItemRender() {const [value, setValue] = useCustomItemRender(); // 错误,在内嵌函数中调用钩子// ...}// ...
}// 正确的使用方式
function MyComponent() {const [value, setValue] = useCustomItemRender(); // 正确,在组件主体中调用钩子function customItemRender() {// 使用value和setValue// ...}// ...
}

如果useCustomItemRender是一个自定义的钩子,它应该遵循React的钩子调用规则,即不在循环、条件判断或者嵌套函数中调用。如果需要在多个地方复用状态逻辑,可以考虑使用自定义组件或高阶组件。

总结:在内嵌函数 customItemRender 中调用了自定义的钩子 useCustomItemRender,而 React 钩子(Hooks)只能在函数组件的主体或其他钩子中调用,不能在嵌套函数中调用。

案例具体解决方法

为了解决这个问题,我们需要将 customItemRender 函数转换为一个自定义的 React 组件,以便在组件主体中调用钩子。

  const CustomItemRender: React.FC<{ originNode: React.ReactNode, file: CustomUploadFile }> = ({ originNode, file }) => {const render = useCustomItemRender(originNode, file);return render;};const customItemRender: ItemRender<CustomUploadFile> = (originNode, file) => {const render = <CustomItemRender originNode={originNode} file={file} />;return render;};

这段代码定义了一个名为 CustomItemRender 的组件,并将其用作 customItemRender 函数的返回值。

通过将 customItemRender 函数转换为一个自定义的 React 组件 CustomItemRender,我们可以在组件主体中调用钩子。

http://www.yidumall.com/news/70680.html

相关文章:

  • 建站系统模板百度招聘网最新招聘信息
  • 怎么注册晋江网站做的搜索引擎都有哪些
  • 网站建设项目简介个人网站的制作模板
  • Godaddy优惠码网站怎么做的网店培训
  • 做外包的网站有哪些问题现代网络营销的方式
  • 电商网站建设 网站定制开发广东省最新新闻
  • 天津网站建设软件开发招聘淘宝网店的seo主要是什么
  • 公司网站集群系统架构及建设思路徐州网站设计
  • 辽宁高端网站建设有什么平台可以发布推广信息
  • 网站内链google搜索引擎下载
  • 怎么自己做彩票网站吗aso优化技术
  • 网上做翻译兼职网站好推广方式
  • 外贸网站是用什么软件做的北京seo排名服务
  • 学校网站制作方案网络营销模式有哪些?
  • 衢州集团网站建设宁波网站推广公司价格
  • 网站长春网站建设百度的代理商有哪些
  • 丰镇市网站hao123上网从这里开始官方
  • 北京市公共资源交易服务平台seo自学网官方
  • 网站建设相对路径seo是啥
  • 网站建设所需基本资料百度上做推广怎么收费
  • 营销型网站文案怎么做小广告设计
  • 精美静态网站源码游戏推广代理
  • 南昌网站建设制作商大数据智能营销系统
  • 中国太平保险集团官方网站软文如何推广
  • 网站三要素怎么做软文文章
  • 惠州哪个房地产网站做的比较好如何免费推广网站
  • 长沙网络营销公司哪家好广州seo工作
  • 知名b2b网站上海网站建设费用
  • 推动政府门户网站建设百度平台营销
  • 数字今天科技 网站网站优化公司认准乐云seo