为了账号安全,请及时绑定邮箱和手机立即绑定

react-router-redux在react-router成为4.0后是不是不需要了

react-router-redux在react-router成为4.0后是不是不需要了

红糖糍粑 2018-07-17 09:23:11
本来在项目打算使用如下的配置,本人通过一些教程中看到了如果想要用react router和redux结合使用的话需要如下的依赖,但是当我从官网的create-creact-app搭建的一个项目中发现了browserHistory这个依赖已经没有了。然后同样的有一个react-router-dom中有一个BrowserRouter这个组件是可以实现相同的,是不是不需要react-router-redux进行router和store同步了啊import { Router, Route, browserHistory } from 'react-router' import { syncHistoryWithStore } from 'react-router-redux';
查看完整描述

2 回答

?
湖上湖

TA贡献2003条经验 获得超2个赞

v4需不需要看个人项目需求,在react-router-redux文档中有这么一些说明:

https://img3.sycdn.imooc.com/5b52d8a40001297308000211.jpg

如果要使用react-router-redux也是可以的,可以参考这个文档说明来使用:

https://img3.sycdn.imooc.com/5b52d8b00001c19007740800.jpg


查看完整回答
反对 回复 2018-07-21
?
HUWWW

TA贡献1874条经验 获得超12个赞

是的。而且在react-router V3也可以不用react-router-redux。这里我说下V3版本如何同步histroystore。不BB,直接上代码:

import { browserHistory } from 'react-router'

import { createStore } from 'redux'


// action

function locationChange (location = '/') {

  return {

    type    : 'LOCATION_CHANGE',

    payload : location

  }

}


// reducer

const initialState = browserHistory.getCurrentLocation()

function locationReducer (state = initialState, action) {

  return action.type === 'LOCATION_CHANGE'

    ? action.payload

    : state

}


// store

const store = createStore(locationReducer)


const updateLocation = ({ dispatch }) => {

  return (nextLocation) => dispatch(locationChange(nextLocation))

}


//绑定browserHistory,取消绑定执行store.unsubscribeHistory()

store.unsubscribeHistory = browserHistory.listen(updateLocation(store))


查看完整回答
反对 回复 2018-07-21
  • 2 回答
  • 0 关注
  • 1018 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信