第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在React項目中使用Redux

在React項目中使用Redux

收到一只叮咚 2021-03-30 14:13:58
我正在嘗試在我的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)用。我跳過了此事以使其更加清晰。
查看完整描述

2 回答

?
明月笑刀無情

TA貢獻(xiàn)1828條經(jīng)驗 獲得超4個贊

你可能是說default: return state;。否則,除了'LOGIN'和'LOGOUT'以外的任何操作都會將您的登錄狀態(tài)設(shè)置為意外的狀態(tài)(通常是undefined)。

要觸發(fā)重新渲染,您需要更新道具或組件的內(nèi)部狀態(tài)。您需要到subcribe商店并手動進(jìn)行操作或使用connect。


查看完整回答
反對 回復(fù) 2021-04-08
  • 2 回答
  • 0 關(guān)注
  • 206 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號