如何使用React / Redux发送内容?

时间:2017-01-22 22:59:48

标签: reactjs redux

这是我到目前为止所拥有的:

export default connect(
  (state) => ({
    search: state.search
  }),
  (dispatch) => ({
    onSearch: (location) => (q) => dispatch(actions.push(getUrlWithQS(location, { qs: { q } }))),
    onClipCardClick: (location) => (clip) => dispatch(actions.push(getUrlWithQS(location, { pathname: `/clips/${clip.id}` })))
  }),
  (stateProps, dispatchProps, ownProps) => ({
    ...stateProps,
    ...dispatchProps,
    ...ownProps,
    onSearch: dispatchProps.onSearch(ownProps.location),
    onClipCardClick: dispatchProps.onClipCardClick(ownProps.location)
  })
)(Home)

我没有写这个(我继承)它,所以onSearch显然发送了一些东西并传递了一个新的查询?那么会发生什么变化是网址更改为http://localhost:5000/?q=whatever

如何在不更改网址的情况下发送?

修改

import { push, goBack } from 'react-router-redux'
actions.push = push

触发onSearch的组件如下所示:

  onChange (e) {
    if(this.state.isMobile) {
      return this.props.onSubmit(e.target.value)
    }

    if(this.props.autoSearch) {
      this.props.onSubmit(e.target.value)
    }

    this.props.onAutocomplete(e.target.value)
    this.setState({
      value: e.target.value,
      selectedSearch: false
    })

  }

1 个答案:

答案 0 :(得分:1)

我将假设从表单的onSubmit处理程序调用onSearch。表单提交(不会通过反应自动阻止)导致URL更改,而不是调度。

您可以使用:

campolist = db.getAllJamky(campo);

在onSubmit处理程序中,因此浏览器不会处理提交。