我在从对象渲染组件时出现错误.

ype 'FC<Boxprops> | ExoticComponent<{ children?: ReactNode; }>' is not assignable to type 'FC<Boxprops>'.
  Type 'ExoticComponent<{ children?: ReactNode; }>' is not assignable to type 'FunctionComponent<Boxprops>'.

我正在try 在对象键的基础上呈现组件

import "./styles.css";
import { BOX, Boxprops } from './box'
import React from "react";
let obj = {
  component:'box'
}
export default function App() {

  const getComponnets = () => {
    let Component: React.FC<Boxprops> = obj.component === 'box' ? BOX : React.Fragment

    return <Component title="asd" />
  }
  return (
    <div className="App">
      {getComponnets()}
    </div>
  );
}

以下是我的代码 https://codesandbox.io/s/naughty-fermat-szgggm?file=/src/App.tsx

ett

有什么 idea 吗..??

推荐答案

屏幕截图中就显示了预期的类型.一定要try 一下IntelliSense推断的东西.

enter image description here

import "./styles.css";
import { BOX, Boxprops } from "./box";
import React from "react";

let obj = {
  component: "box"
};

type IComponent =
  | React.FC<Boxprops>
  | React.ExoticComponent<{
      children?: React.ReactNode;
    }>;

export default function App() {
  const Component: IComponent = React.useMemo(
    () => (obj.component === "box" ? BOX : React.Fragment),
    []
  );

  return (
    <div className="App">
      <Component title="asd" />
    </div>
  );
}

Edit getting-error-in-react-js-while-rendering-component

Typescript相关问答推荐

TypScript在对象上强制执行值类型时推断对象文字类型?

为什么ESLint抱怨通用对象类型?

node—redis:如何在redis timeSeries上查询argmin?

泛型函数中输入参数类型的推断问题

无法正确推断嵌套泛型?

PrimeNG日历需要找到覆盖默认Enter键行为的方法

为什么在回调函数的参数中不使用类型保护?

接口重载方法顺序重要吗?

剧作家元素发现,但继续显示为隐藏

笛卡尔产品类型

React router 6(数据路由)使用数据重定向

TYPE FOR ARRAY,其中每个泛型元素是单独的键类型对,然后在该数组上循环

如何创建由空格连接的多个字符串的类型

为什么&Quot;元素隐式具有';Any';类型,因为...即使我已经打字了,也不能作为索引显示错误吗?

类型与泛型抽象类中的类型不可比较

带投掷的收窄类型

在打字应用程序中使用Zod和Reaction-Hook-Forms时显示中断打字时出错

如何避免多个类型参数重复?

仅当定义了值时才按值筛选数组

我如何键入它,以便具有字符串或数字构造函数的数组可以作为字符串或数字键入s或n