2

我正在努力寻找快速解决问题的方法,因为客户抱怨网站无法在 IE 上呈现。我做了一些研究,我遇到了这个react-app-polyfill/ie11。我已将它作为入口点插入到src/index.js我的 IE 11 上我看到我的项目(只有登录)在我的工作,但登录后它再次重定向回登录页面。IE 抛出的错误是: DOM7011 : The code on this page disabled back and forward caching. Unhandled promise rejection TypeError: Unable to get property 'data' of undefined or null reference

过了一会儿,我也遇到了这个: https ://reactjs.org/docs/javascript-environment-requirements.html

新的 JavaScript 环境要求。基本上,他们建议启用index.js此 作为入口点import 'core-js/es/map'; import 'core-js/es/set';

到目前为止,我不知道发生了什么,但该应用程序仍然无法在 IE 上正常运行。有人可以给我一些建议该怎么做吗?

更新的Login.js

export default class Login extends Component {
constructor(props) {
    super(props);

    this.state = {
        translations: EN_TRANSLATIONS,
        clientNumber: "",
        password: "",
        redirectToReferrer: '',
        loginErrorMessage: "",
        lockedUntilDate: ''
    };


}

async componentWillMount() {

    let tenant = window.location.hostname


    axios.post(SERVER_URL + '/api/user/page', {
        tenant: tenant
    })

        .then(response => {

            localStorage.setItem('page', JSON.stringify(response.data.branding));
            localStorage.setItem('tenant', tenant);

            this.setState({
                branding: response.data.branding,
                tenant: tenant,
                pageReady: true
            });
        });

login = () => {

    axios.post(SERVER_URL + '/api/user/access', {
        tenant: this.state.tenant,
        customerNumber: parseInt(this.state.clientNumber),
        password: sha1(this.state.password + FE_SALT)
    })
        .then(response => {

            localStorage.setItem('token', response.data.token);
            localStorage.setItem('access', JSON.stringify(response.data.branding));

            this.setState({
                branding: response.data.branding,
                accessReady: true
            });

            if (this.state.accessReady) {

                if (response.data.passwordValidity >= 0) {
                    Auth.authenticate(response => {
                        this.setState({ redirectToReferrer: 'dashboard' })
                    });
                } else {
                    Auth.authenticate(response => {
                        this.setState({ redirectToReferrer: 'changePassword' })
                    });
                }
            }

        })

``

index.js

import 'react-app-polyfill/ie9';
import 'react-app-polyfill/ie11';
import 'react-app-polyfill/jsdom';

import React from "react";
import ReactDOM from "react-dom";
import App from "./App";
import { BrowserRouter } from "react-router-dom";

ReactDOM.render(
 <BrowserRouter>
  <App />
 </BrowserRouter>,
document.getElementById("root")
 );

我还标记了我无法导入,'react-app-polyfill/stable'我认为这应该可以,但我不确定。

更新 我已经删除node_modules并再次安装react-app-polyfill。现在'react-app-polyfill/stable'已识别,但我遇到了另一个错误。 SCRIPT438: Object doesn't support property or method 'repeat'...这个IE让我发疯了...

更新 Okey,所以我能够删除我的私人路线并使登录后的每条路线都可见<Route/>。如果我硬编码 URL 路径并禁用安全性,我可以访问我的仪表板页面。所以这让我认为问题来自<Redirect/>组件。因为他是唯一站在登录和仪表板之间的人。IE任何建议为什么和之间的冲突<Redirect/>???

4

0 回答 0