当前位置: 首页 > 知识库问答 >
问题:

Typescript ESLint错误-使用react功能组件时如何键入子项?

夏侯和韵
2023-03-14

我正在收集以下样本的样板:

  • 反应16。x(来自CreateReact应用程序)
  • 打字稿
    • 带功能部件
    • 通过上下文提供程序

    我几乎已经解决了所有问题,但我似乎无法解决我遇到的这一个错误。我有一个像这样的MobX商店供应商

    js prettyprint-override">import { useLocalStore } from 'mobx-react';
    import React from 'react';
    import { StoreType } from '../Types/StoreType';
    import { StoreContext } from './StoreContext';
    
    export const StoreProvider = ({ children }) => {
      const store = useLocalStore(() => ({
        loginStore: { email: ['neil.peart@rush.yyz'] },
        applicationStore: { firstName: 'neil', lastName: 'peart' }
      })) as StoreType;
      return <StoreContext.Provider value={store}>{children}</StoreContext.Provider>;
    };
    
    

    我得到的错误:

    6:30警告@typescript eslint/explicit函数返回类型上缺少返回类型

    6:33道具/道具类型中缺少错误“children”

    如果你想把整个事情搞定,你可以在这里:https://github.com/Savij/functional-react-mobx-material

    欣赏任何洞察力!-J

共有1个答案

平庆
2023-03-14

在您的示例中,StoreProvider的返回类型是React。ReactElement,可以这样设置:

export const StoreProvider = ({ children }): React.ReactElement => {
    return ... 
}

源代码中的子项类型也是React。ReactElement,但必须包装在接口中,因为它将作为组件道具的属性传入。

export const StoreProvider = ({ children }: StoreProviderProps): React.ReactElement => {
    return ... 
}

interface StoreProviderProps {
    children: React.ReactElement;
}
 类似资料:
  • 我正在学习使用react钩子来管理状态,但我得到了一个错误,即第5:3行:react钩子“useffect”在函数“campot”中被调用,该函数既不是react函数组件,也不是自定义react钩子函数react钩子/钩子规则 这是我的密码

  • 问题内容: 在花了一些时间学习React之后,我了解了创建组件的两个主要范例之间的区别。 我的问题是,什么时候应该使用哪个?为什么?一个人相对于另一个人的利益/取舍是什么? ES6课程: 功能性: 我认为只要没有状态可以由该组件操纵,功能就可以了,是吗? 我猜如果我使用任何生命周期方法,最好使用基于类的组件。 问题答案: 你有正确的主意。如果您的组件只做一些道具和渲染,那么功能就可以了。您可以将它

  • 在花了一些时间学习React之后,我理解了创建组件的两种主要模式之间的差异。 我的问题是什么时候我应该使用哪一个,为什么?一种方法与另一种方法相比有哪些好处/利弊? ES6类: 功能: 我认为只要没有状态可被该组件操纵,就可以正常工作,但就这样吗? 我想如果我使用任何生命周期方法,最好使用基于类的组件。

  • 问题内容: 我尝试将函数传递给子组件。当用户单击每个子组件时,将调用onclick函数。此onclick函数将写入父组件。 父组件: 子组件: 在这一行: 它说没有定义handleClick …如何解决这个问题? 感谢您的回答。 问题答案: 您需要将Agents绑定到AgentsList:这是您的代码的一个简单示例,我不得不删除一些东西,但是您明白了: http://jsfiddle.net/vh

  • 问题内容: 我有一个功能组件,我想强迫它重新渲染。 我该怎么办? 由于没有实例,因此我无法致电。 问题答案: 现在,使用react挂钩,您可以调用函数组件。 将返回由2个元素组成的数组: 1.一个值,表示当前状态。 2.它的二传手。用它来更新值。 通过设置器更新值将迫使您的功能组件重新呈现 , 就像这样做: 您可以在此处找到演示。 上面的组件使用了自定义的钩子函数(),该函数使用了布尔状态钩子()

  • 问题内容: 结合使用TypeScript和React,我们不再需要扩展,以使编译器知道所有react组件prop都可以有子代: 但是,无状态功能组件似乎并非如此: 发出编译错误: 错误:(102、17)TS2339:类型“ MyProps”上不存在属性“子级”。 我猜这是因为编译器实际上没有办法知道在props参数中将提供香草函数。 所以问题是我们应该如何在TypeScript的无状态功能组件中使