Ошибка при получении типа элемента при попытке заполнить карточки данными JSON - PullRequest
0 голосов
/ 04 марта 2020

Я знаю, что эта ошибка была опубликована много раз, но ни одно из исправлений не помогло мне. И я застрял с ним в течение недели ...

Я учусь реагировать в свободное время и хочу создать веб-страницу, которая принимает объект json, перебирает его, чтобы заполнить карточки и возвращает карты. Это сделано в компоненте, который я импортирую на главную страницу. Вот ошибка:

Uncaught Error: Тип элемента недопустим: ожидается строка (для встроенных компонентов) или класс / функция (для составных компонентов), но получено: undefined. Вы, вероятно, забыли экспортировать свой компонент из файла, в котором он определен, или вы могли смешать импорт по умолчанию и с именами. Проверьте метод визуализации Dashboard.

import React from 'react';
import { CardHeader, Card } from "@material-ui/core";
import render from "react-dom";


export default function CardComponent() {
  let bedpressJSONObject = {
    bedpress: {
      "0": {
        bedriftsnavn: "hei",
        dato: "24.12.12",
        info: "asdasdsadas"
      },
      "1": {
        bedriftsnavn: "på",
        dato: "14.05.22",
        info: "gfdsgdfsbvfbvsrgf"
      },
      "2": {
        bedriftsnavn: "dei",
        dato: "15.2.12",
        info: "243wresdfvxzgbtr"
      }
    }
  };

  let cardList = [];
  Object.keys(bedpressJSONObject.bedpress).forEach(index => {
    let card = bedpressJSONObject.bedpress[index];
    console.log(card.dato)
    cardList.push(
      <Card>
        <CardHeader
          title={card.bedriftsnavn}
          subtitle={card.dato}
          actAsExpander={true}
          showExpandableButton={true}
        />
        <p>{card.info}</p>
      </Card>
    );
  });
{
   return (
   <div className="card-list">
     {cardList}
     </div>
     );
    }
}

И вот главная страница:

import AppBar from "@material-ui/core/AppBar";
import { makeStyles } from "@material-ui/core/styles";
import Toolbar from "@material-ui/core/Toolbar";
import Typography from "@material-ui/core/Typography";
import "bootstrap/dist/css/bootstrap.min.css";
import React from "react";
import {CardComponent} from "../Components/CardsComponent";
import {DropdownMenu} from "../Components/DropdownComponent";
const useStyles = makeStyles(theme => ({
  root: {
    flexGrow: 1
  },
  menuButton: {
    marginRight: theme.spacing(2)
  }
}));

export default function Dashboard() {
  const classes = useStyles();
  return (
    <div className={classes.root}>
      <div>
        <AppBar position="static" style={{ backgroundColor: "#182b36" }}>
          <Toolbar variant="dense">
            <DropdownMenu />
            <Typography variant="h6" color="inherit">
              Dashboard
            </Typography>
          </Toolbar>
        </AppBar>
      </div>
      <CardComponent/>
    </div>
  );
}

Любая помощь или советы будут с благодарностью!

1 Ответ

1 голос
/ 04 марта 2020

Вместо import {CardComponent} from "../Components/CardsComponent"; Используйте import CardComponent from "../Components/CardsComponent";

Вы используете export default и неназванный экспорт в CardComponent. js

https://developer.mozilla.org/en-US/docs/web/javascript/reference/statements/export

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...