Typescript 3.7.2, React и Material UI 4.5.1 Снэкбары - PullRequest
0 голосов
/ 08 января 2020

Я пытаюсь использовать снэк-бар пользовательского интерфейса для отображения всплывающих ошибок в моем приложении реакции.

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

Это мой компонент ErrorPopup:

import React from 'react';
import { Snackbar } from '@material-ui/core';
import MuiAlert, { AlertProps } from '@material-ui/lab/Alert';

function Alert(props: AlertProps) {
  return <MuiAlert elevation={6} variant="filled" {...props} />;
}

interface ErrorProps {
  message: string;
}

export default function ErrorPopup(props: ErrorProps) {
  const [open, setOpen] = React.useState(true);

  const handleClose = () => {
    setOpen(false);
  };

  return (
    <div>
      {props.message !== '' ? (
        <Snackbar open={open} autoHideDuration={6000} onClose={handleClose}>
          <Alert onClose={handleClose} color="error">
            {props.message}
          </Alert>
        </Snackbar>
      ) : (
        ''
      )}
    </div>
  );
}

В моем главном представлении я вызываю этот компонент так:

<ErrorPopup message={this.state.errors} />

Кажется, что происходит, что я получаю ошибки, которые, как мне кажется, что-то указывают на проблему WithStyles + машинопись всплывает, но я не в полной мере понимаю, что это такое продолжается. Я просто ожидал, что это сработает, так как все мои материалы в пользовательском интерфейсе работали до сих пор.

Я попробовал несколько быстрых и вставляющих исправлений типа пистолета из net (как у вас), но я точно не знаю, что именно происходит, поэтому мне нужно хотя бы начать там.

Вот снимок экрана:

Возможно, с ошибками стилей?

  1. Во-первых, подходит ли этот подход к отображению ошибок нормально?
  2. Во-вторых, кто-нибудь может указать мне правильное направление здесь?

1 Ответ

0 голосов
/ 08 января 2020

К сожалению, я просто запустил обновление npm в моем проекте, и все начало работать. Для справки, мои зависимости в package.json

    "dependencies": {
        "@material-ui/core": "^4.8.3",
        "@material-ui/icons": "^4.5.1",
        "@material-ui/lab": "^4.0.0-alpha.39",
        "@types/pouchdb": "^6.4.0",
        "@types/react-router-dom": "^5.1.3",
        "clsx": "^1.0.4",
        "highcharts": "^7.2.1",
        "highcharts-react-official": "^2.2.2",
        "pouchdb": "^7.1.1",
        "pouchdb-find": "^7.1.1",
        "pubnub": "^4.27.3",
        "react": "^16.12.0",
        "react-dom": "^16.12.0",
        "react-router-dom": "^5.1.2",
        "react-scripts": "^3.3.0",
        "request": "^2.88.0",
        "typescript": "^3.7.4"
    },

Хотя это решает мою первоначальную проблему, заставляя ее работать, это правильный подход?

Приветствия

...