хранилище сессий не может быть реализовано в приложении activjs - PullRequest
0 голосов
/ 05 ноября 2018

Я создал простую страницу в реакции. Там я сделал кнопку. При нажатии на эту кнопку запускается ответ, который мне нужно сохранить в хранилище сеанса.

Вот мой код;

Main.js

import React, {Component} from "react";
import 'bootstrap/dist/css/bootstrap.min.css';
import $ from 'jquery';
import Popper from 'popper.js';
import 'bootstrap/dist/js/bootstrap.bundle.min';
import {Route, Switch} from 'react-router-dom';
import Navigation from "./components/topNavigation";
import Footer from "./components/Footer";
import Banner from "./components/Banner";
import PLPMenu from "./components/PLPMenu";
import PDP from "./components/PDP";
import Home from "./components/Home";
import CartList from "./components/CartList";
import {connect} from 'react-redux';
import {bindActionCreators} from 'redux';
import {login} from "./actions";


class Main extends Component {

    componentDidMount() {
        this.props.login;
        console.log(this.props)
    }



     login() {
        // for all items in state
        for (let WCToken in this.props.login()) {
          // if the key exists in localStorage
          if (localStorage.hasOwnProperty(WCToken)) {
            // get the key's value from localStorage
            let value = localStorage.getItem(WCToken);

            // parse the localStorage string and setState
            try {
              value = JSON.parse(value);
              this.setState({ [WCToken]: value });
            } catch (e) {
              // handle empty string
              this.setState({ [WCToken]: value });
            }
          }
        }
      }


    render() {


        return (
            <div>
                <button className=" float-right" onClick={(e) => this.props.login()}>Login in as Guest</button>

        <Navigation />

                <Switch>
                    <Route exact path="/" component={Home}/>
                    <Route path="/Apparel/:category/:subCategory/:id" component={PLPMenu}/>
                    <Route path="/Apparel/:product/:id" component={PDP}/>
                    <Route path="/cart" component={CartList}/>
                    <Route path="/Banner" component={Banner}/>
                    <Route path="/Footer" component={Footer}/>
                </Switch>


            </div>

        )

    }


}

const mapStateToProps = (state) => {
    return {
        loginResponse: state.fashion.loginResponse
    };
};

const mapDispatchToProps = (dispatch) => {
    return bindActionCreators({
        login: login
    }, dispatch)
};

export default connect(mapStateToProps, mapDispatchToProps)(Main);

Каждый раз, когда я нажимаю на кнопку, в окне моего консольного браузера появляется ответ.

enter image description here

Исходя из ответа, мне нужно сохранить WCToken и WCTrustedToken в хранилище сеансов. Я написал фрагмент кода для сохранения сеанса в файле Main.js выше, но он не сохраняется в хранилище сеанса.

Может кто-нибудь, пожалуйста, помогите мне в этом. Или, по крайней мере, дайте мне понять, как устранить эту ошибку. Спасибо

...