简体   繁体   English

更新后的 React.Suspense 预期字符串

[英]React.Suspense expected string after update

A recent update caused my React.Suspense fallback to throw this error:最近的更新导致我的 React.Suspense 后备抛出此错误:

Warning: React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: undefined. You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.

This exact code used to work and I'm wondering if anyone has any thoughts on which package to roll back(?)这个确切的代码曾经可以工作,我想知道是否有人对要回滚哪个 package 有任何想法(?)

// App.jsx // 应用程序.jsx

<Suspense fallback={<Fallback/>}>...</Suspense>

Here's my Fallback component:这是我的后备组件:

import Loader from 'react-loader-spinner';
import React from 'react';

export const MediaUploading = ({
  t = 'Grid',
  c = '#121d66',
  h = '60',
  w = '60',
}) => {
  return (
    <div className="media-uploading">
      <Loader type={t} color={c} height={h} width={w} timeout={0} />
    </div>
  );
};

// fallback
export const Fallback = ({
  t = 'Grid',
  c = '#121d66',
  h = '100',
  w = '100',
}) => {
  return (
    <div className="loading">
      <Loader type={t} color={c} height={h} width={w} timeout={0} />
    </div>
  );
};

Looks like when react-loader-spinner moved to v5, they dropped their Loader component and removed the default export.看起来当react-loader-spinner迁移到 v5 时,他们删除了Loader组件并删除了默认导出。 So if you want to keep using the Loader , then stick to react-spinner-loader@4 .因此,如果您想继续使用Loader ,请坚持使用react-spinner-loader@4

v4 - only has a default export (no named exports) v4 - 只有一个默认导出(没有命名导出)

import Loader from "react-loader-spinner";

v5 - only has named exports (no default export) v5 - 仅具有命名导出(无默认导出)

import { Grid } from "react-loader-spinner";

在此处输入图像描述

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM