9 redux 搭配 React Router

本文详细介绍如何在React应用中整合React Router与Redux,包括React Router的安装、配置及如何在Redux环境中正确读取URL数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

安装 React Router

可以使用 npm 来安装 React Router。本教程基于 react-router@^2.7.0 。

npm install --save react-router

 

连接 React Router 和 Redux 应用

首先,我们需要从 React Router 中导入 <Router /> 和 <Route />。代码如下:

import { Router, Route, browserHistory } from 'react-router';

const Root = () => (

  <Router>

    <Route path="/" component={App} />

  </Router>  );

 

然后,我们从 React Redux 导入 <Provider />用 <Provider /> 包裹 <Router />

import { Provider } from 'react-redux';

const Root = ({ store }) => (

  <Provider store={store}>

    <Router>

      <Route path="/" component={App} />

    </Router>

  </Provider>);

完整代码如下:

import React, { PropTypes } from 'react';

import { Provider } from 'react-redux';

import { Router, Route, browserHistory } from 'react-router';

import App from './App';

 

const Root = ({ store }) => (

  <Provider store={store}>

    <Router history={browserHistory}>

      <Route path="/(:filter)" component={App} />

    </Router>

  </Provider>);

 

Root.propTypes = {

  store: PropTypes.object.isRequired,

};

export default Root;

 

 

读取 URL 中数据

在React组件中读取url数据:

没什么变化,直接按照react router原本的方式读取

 

mapStateToProps 中读取url数据:

React ReduxmapStateToProps 的第二可选参数 ownProps,这是原本传递给组件的props属性对象ownProps中就包含了react router的数据

const mapStateToProps = (state, ownProps) => {

  return {

    todos: getVisibleTodos(state.todos, ownProps.match.params.filter)

  };

};

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值