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

如何使用“函数”语法而不是“常量”添加类型FunctionComponent以反应函数组件?

邓元白
2023-03-14

这工作罚款:

import React, { FunctionComponent } from "react";
const Counter: FunctionComponent = () => <div>hello from Counter</div>;
export default Counter;

这有一个编译错误:

import React, { FunctionComponent } from "react";
function Counter1(): FunctionComponent {
  return <div>hello from Counter1</div>;
}
export default Counter1;

错误表示:

类型“Element”不可分配给类型“FunctionComponent”

如何使用“函数”语法编写FunctionComponent类型的函数组件?

共有2个答案

乐正焕
2023-03-14

可以使用与函数同名的接口

interface Counter extends FunctionComponent {}
function Counter() {
  return <div>hello from Counter1</div>;
}
孙福
2023-03-14

在里面

const Counter: FunctionComponent = () => <div>hello from Counter</div>;

计数器的类型为FunctionComponent。这是期望的行为。但在:

function Counter(): FunctionComponent {
  return <div>hello from Counter1</div>;
}

计数器的类型是一个函数,它返回的函数组件不是您想要的,并且不符合函数定义。

如果你绝对想使用函数,你可以这样写:

const Counter: FunctionComponent = function() {
  return <div>hello from Counter1</div>;
}
 类似资料:
  • 目前,我的类型定义为: 我需要这样的东西: 但第二条不被接受。

  • 我正在尝试使用react钩子创建一个悬停以显示div,我遇到了以下问题: 第69:31行:在函数“renderHideOptionalClauseTrigger”中调用React钩子“useState”,该函数既不是React函数组件,也不是自定义React钩子函数React钩子/钩子规则 搜索关键字以了解有关每个错误的更多信息。 以下是我的代码库:

  • 有没有一种最佳实践可以将函数类型与React prop类型和TypeScript结合使用? 我以为这会奏效,但事实上它错了: 按照这个思路,我让它工作了,但它似乎不必要地冗长:https://github.com/Microsoft/TypeScript/issues/20007

  • 我尝试在云函数中使用Firestore,但遇到了错误 数据库。集合(…)。文档(…)。集合(…)。文档(…)。add不是promise的功能 我先读了这些主题,然后又读了其他主题。但我没有帮我。包裹。json外观 云功能之一 此代码来自函数 我怎样才能修复它?

  • 我有一种类型看起来是这样的: 和一个函数 我也试过 但是GHC说是不推荐使用的,这是一个坏主意,更严重的是,我得到: 我认为这是说约束实际上不能用我希望的方式将约束为,这是很明显的(因为有两个类型变量):-( 当然,这也是无效的,哈斯克尔 是否有类似的类型类我可以使用,或者我尝试使用类型类来实现“隐式规范化函数调用的结果”的功能是错误的?

  • 使用此类型类将地图转换为case类: 此函数用于隐式获取正确的映射器 它可以用作 但我也希望能够将此函数与 Option[Map[]] 或 Future[Map[]] 或 List[Map[]] 一起使用。所以我使用这样的函子实现了一个泛型函数: 但是现在这个函数必须用作 。 但是,我希望能够将该功能用作 无需指定函子类型。这在某种程度上是可能的吗? Shapeless的懒惰可以用来解决这个问题吗