Передача переменной состояния React на страницу stati c для визуализации - PullRequest
0 голосов
/ 13 апреля 2020

Передача состояния в компонент c и использование переменной для отображения.
Новое в React на унаследованной кодовой базе.

в Routes.js у нас есть

componentDidMount() {
...catching an error ...
this.setState({ serverError: true, errorStack: err.response.data.stack, errorMsg: err.response.data.message });    
}

позже у нас есть:

render() {
    return (
        <BrowserRouter>
          <ScrollToTop>
            <Switch>
              {
                  this.state.serverError ?
                    <Route component={Page500} />

, а затем у нас есть страница 500. js

import React from "react";
import { Button } from "reactstrap";

const Page500 = (props) => (
  <div className="text-center">
    <h1 className="display-1 font-weight-bold">500</h1>
    <p className="h1">Internal server error.</p>
    <p className="h2 font-weight-normal mt-3 mb-4">
      The server encountered something unexpected that didn&apos;t allow it to
      complete the request. <br />
      Error: {props.errorMsg}
    </p>
    <a href=".">
      <Button color="primary" size="lg">
        Return to website
      </Button>
    </a>
  </div>
);

export default Page500;

Я пытаюсь напечатать errorMsg в функции Page500, но для некоторых причина ничего не работает, даже "это" не определено и не уверен, как читать состояние из маршрутов.

1 Ответ

1 голос
/ 13 апреля 2020

Вы можете передать сообщение об ошибке в Router через реквизит

<Route render={(props) => <Page500 {...props} errorMsg={this.state.errorMsg} />} />
...