react-navigation通過redux中間件來做登錄驗證

創(chuàng)建一個登錄驗證中間件

createLoginMiddleware.js
import {NavigationActions} from "react-navigation"

function createLoginMiddleware() {
    return ({dispatch, getState}) => next => action => {
        // 判斷action type是否為NAVIGATE類型 并且是需要驗證的頁面
        if (action.type == NavigationActions.NAVIGATE && (action.routeName == 'Trade' || action.routeName == 'LiveTelecast')) {
            const state = getState()
            let appLoginState = state.getIn(['loginState', 'appLoginState']);
            // 判斷登錄狀態(tài)
            if (!appLoginState) {
                // 沒有登錄者跳轉(zhuǎn)到登錄頁面
                dispatch({type: NavigationActions.NAVIGATE, routeName: 'AppLogin'})
                return
            }
        }
        return next(action)
    }
}

export default createLoginMiddleware

添加中間件

configureStore.prod.js
import { createStore, applyMiddleware, compose } from 'redux'
import thunk from 'redux-thunk'
import { Map } from 'immutable'

import { socket } from './io'
import createSocketIoMiddleware from './socketIo'
import createLoginMiddleware from './loginMiddleware'
import getReducers from '../reducers/index'

// socket中間件
const socketMiddleware = createSocketIoMiddleware(socket)
// 登錄驗證中間件
const loginMiddleware = createLoginMiddleware()

function configureStore(navReducer, initialState = Map()) {
    let enhancer = compose(
        applyMiddleware(socketMiddleware, loginMiddleware, thunk)
    )
    return createStore(getReducers(navReducer), initialState, enhancer)
}

export default configureStore
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子骡技,更是在濱河造成了極大的恐慌,老刑警劉巖帅矗,帶你破解...
    沈念sama閱讀 216,997評論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件偎肃,死亡現(xiàn)場離奇詭異煞烫,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)累颂,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,603評論 3 392
  • 文/潘曉璐 我一進(jìn)店門滞详,熙熙樓的掌柜王于貴愁眉苦臉地迎上來凛俱,“玉大人,你說我怎么就攤上這事料饥∑讶” “怎么了?”我有些...
    開封第一講書人閱讀 163,359評論 0 353
  • 文/不壞的土叔 我叫張陵岸啡,是天一觀的道長原叮。 經(jīng)常有香客問我,道長巡蘸,這世上最難降的妖魔是什么奋隶? 我笑而不...
    開封第一講書人閱讀 58,309評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮悦荒,結(jié)果婚禮上唯欣,老公的妹妹穿的比我還像新娘。我一直安慰自己搬味,他們只是感情好境氢,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,346評論 6 390
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著碰纬,像睡著了一般萍聊。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上嘀趟,一...
    開封第一講書人閱讀 51,258評論 1 300
  • 那天脐区,我揣著相機(jī)與錄音,去河邊找鬼她按。 笑死牛隅,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的酌泰。 我是一名探鬼主播媒佣,決...
    沈念sama閱讀 40,122評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼陵刹!你這毒婦竟也來了默伍?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,970評論 0 275
  • 序言:老撾萬榮一對情侶失蹤衰琐,失蹤者是張志新(化名)和其女友劉穎也糊,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體羡宙,經(jīng)...
    沈念sama閱讀 45,403評論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡狸剃,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,596評論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了狗热。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片钞馁。...
    茶點(diǎn)故事閱讀 39,769評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡虑省,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出僧凰,到底是詐尸還是另有隱情探颈,我是刑警寧澤,帶...
    沈念sama閱讀 35,464評論 5 344
  • 正文 年R本政府宣布训措,位于F島的核電站伪节,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏绩鸣。R本人自食惡果不足惜架馋,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,075評論 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望全闷。 院中可真熱鬧叉寂,春花似錦、人聲如沸总珠。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,705評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽局服。三九已至钓瞭,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間淫奔,已是汗流浹背山涡。 一陣腳步聲響...
    開封第一講書人閱讀 32,848評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留唆迁,地道東北人鸭丛。 一個月前我還...
    沈念sama閱讀 47,831評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像唐责,于是被迫代替她去往敵國和親鳞溉。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,678評論 2 354

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理鼠哥,服務(wù)發(fā)現(xiàn)熟菲,斷路器,智...
    卡卡羅2017閱讀 134,654評論 18 139
  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 46,806評論 6 342
  • React中沒有類似Angular那樣的雙向數(shù)據(jù)綁定,在做一些表單復(fù)雜的后臺類頁面時于颖,監(jiān)聽呆贿、賦值、傳遞恍飘、校驗時編碼...
    tedyuen777閱讀 9,866評論 1 23
  • 今天是夏令營的第四天章母,也是各個小戰(zhàn)士們在營地的最后一晚母蛛,即將結(jié)營回家喜悅的心情都掛在臉上,一個個心花怒放乳怎,內(nèi)向的不...
    總會等到那一天閱讀 378評論 1 1
  • 中午出去吃飯在回來的路上正抱怨各種飯都不好吃的時候彩郊,看見了小時候吃的一種零食,學(xué)名叫什么不知道蚪缀,俗稱“焦米貴”秫逝,于...
    小章女子閱讀 477評論 1 1