我正在嘗試在我的React項目中使用Redux。目的是要有一個給我令牌的組件。我不想將此令牌存儲在我的App.js中,所以我使用redux。但是,當(dāng)我嘗試將更改保存到商店時,它可以工作,但不會重新渲染。這是我的代碼:App.jsimport React, { Component } from 'react';import LoginApi from './components/LoginApi.js';import { createStore } from 'redux'import './App.css';function pops(state = { sessionToken: '', isLoggedIn: false, group: '' }, action) { const { sessionToken, isLoggedIn, group, type } = action; switch (type) { case 'LOGIN': return { sessionToken, isLoggedIn, group }; case 'LOGOUT': return { sessionToken: '', isLoggedIn: false, group: '' }; default: return { sessionToken, isLoggedIn, group }; }}const store = createStore(pops, { sessionToken: '', isLoggedIn: false, group: '', });class App extends Component { render() { return ( <div className="App container-fluid"> <div className="row text-center"> <div className="col-3"><LoginApi store={store} /></div> </div> </div> ); }}export default App;LoginApi.jsimport React from 'react';import './LoginApi.css';class LoginApi extends React.Component { handleLogout() { this.props.store.dispatch({ type: "LOGOUT"}); } handleLogin() { this.props.store.dispatch({ type: "LOGIN", sessionToken, isLoggedIn: true, group }); } render() { const { isLoggedIn, sessionToken } = this.props.store.getState(); console.log(this.props.store.getState()); return ( <div className="Login"> {(isLoggedIn === true && sessionToken !== "") ? <button type="button" className="btn btn-danger" onClick={this.handleLogout}>Logout</button> : <button type="button" className="btn btn-primary" onClick={this.handleLogin}>Login</button> } </div> ); }}export default LoginApi;handleLogout和handleLogin是使用axios對我的API的調(diào)用。我跳過了此事以使其更加清晰。
在React項目中使用Redux
收到一只叮咚
2021-03-30 14:13:58