reactjs 类型“0|元素|“undefined "不能赋给类型”Element“

dpiehjr4  于 2022-12-22  发布在  React
关注(0)|答案(1)|浏览(158)

我收到一个错误:
第一个月
当我做条件渲染的时候。这里怎么按条件渲染?

export const Home: FC = (): JSX.Element => {
  const [initials, setInitials] = useState<InitialProps[] | null>(null);
  useEffect(() => setInitials(initialInitialPropsSchema), []);
  return initials?.length && <Header initials={initials} />;
};
oknwwptz

oknwwptz1#

return initials?.length && <Header initials={initials} />;

这是有问题的一行。因为返回类型应该是React元素,所以如果你的首字母没有初始化,你可能想返回一些可摘要的东西。虽然不是最漂亮的,但返回空片段应该是可行的:

return initials?.length ? <Header initials={initials} /> : <></>

或者,您可以返回null:

export const Home: FC = (): JSX.Element | null => {
  const [initials, setInitials] = useState<InitialProps[] | null>(null);
  useEffect(() => setInitials(initialInitialPropsSchema), []);
  return initials?.length ? <Header initials={initials} /> : null;
};

或某个加载状态:

export const Home: FC = (): JSX.Element => {
  const [initials, setInitials] = useState<InitialProps[] | null>(null);
  useEffect(() => setInitials(initialInitialPropsSchema), []);
  return initials?.length ? <Header initials={initials} /> : <span>loading</span>;
};

相关问题