首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在react应用程序中修复这个“无效钩子调用”错误的正确方法是什么?

在react应用程序中修复这个“无效钩子调用”错误的正确方法是什么?
EN

Stack Overflow用户
提问于 2020-03-23 06:40:15
回答 3查看 260关注 0票数 0

好吧,我有个错误

代码语言:javascript
运行
复制
Error: Invalid hook call. Hooks can only be called inside of the body of a function component. 

我尝试了很多不同的方法来解决这个问题,但我失败了。

这是我的密码

代码语言:javascript
运行
复制
export const DataInput = () => {

    const Post = (testTitle, testText) => {
            useFirestore().collection('schedule-data').doc('test').set({
                testTitle: testTitle,
                testText: testText
            })
         }
    return(
        <Button 
           variant="primary"
           onClick={()=> Post(testTitle, testText)}>
           POST data
        </Button>

删除了一些不重要的代码

EN

Stack Overflow用户

发布于 2020-03-23 07:08:07

根据您的代码samle,我可能建议testTitle, testText以某种方式在DataInput中可用,因此您可以使用useCallback创建onClick处理程序。React将创建回调以用作处理程序,并在更改时只重新创建

代码语言:javascript
运行
复制
import {useCallback} from 'react';

export const DataInput = () => {
    const makePost = useCallback(() => {
      useFirestore().collection('schedule-data').doc('test').set({
        testTitle: testTitle,
        testText: testText
      })
    }, [testTitle, testText]);

    return (
    <Button
      variant="primary"
      onClick={makePost}
      {/* Avoid inline callback  declaration */}
    >
      POST data
    </Button>
    )
}

票数 -1
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60808924

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档