更改 URL 并调用 redux 操作以获取 react redux 应用程序中的数据

Change URL and call redux action to get the data in react redux application

谁能告诉我如何在服务器端更改路由的 URL 时如何调用操作 react redux 组件与 react-router 进行路由。

我正在使用反应路由器的 browserHistory 将我的输入推送到 url。

import React from 'react';
import { connect } from 'react-redux';
import { browserHistory } from 'react-router';

class findBirthdays extends Component {
  constructor(props){
    super(props);
  }

  openCalender(){
    // here I open the date picker and let user select the date
    // then I add that date in the URL as "localhost:3000/find/?date=22-02-2017"
    // here I get confused as I do not know now how to dispatch the action or
    // how to access url params in a specific actions after dispatching that action
  }

  render(){
    return (
      // repeating all the birthday that are available on selected date
    )
  }
}

const mapStateToProps = (state) => {
  return {
    birthdayList: state.birthdays,
  };
};

export default connect(mapStateToProps)(findBirthdays);

我有很多输入,在每个输入更改事件上,都会附加 URL,这应该会导致调度操作并获得正确的结果。

我是 React 和 redux 的新手,所以如果有人可以建议这是否可以完成或如何解决这个问题,那将会很有帮助。 谢谢大家。

当 URL 更改时,componentWillRecevieProps 将自动调用,您可以在那里访问 nextProps 然后您可以调度任何您想要的操作

在 nextProps 中,您可以访问包含您需要的关于 url

的一切的位置

抱歉,我在代码中遗漏了一些东西,我通过以下方式解决了这个问题,

  1. 每当我更改输入时,我都会发送一个操作并更新 URL。
    • 所以在上面的例子中,我将在
    • 中发送一个动作

openCalender() function after selecting the date.

  1. 当用户想要手动更改 URL 时,我会在服务器端进行处理。
    • 当用户更改 URL 并按回车键时,这意味着服务器呈现整个新页面。
    • 我正在调度页面加载时的默认操作,

this.props.location.query

参数,由react-redux-router提供。