这是我到目前为止所拥有的:
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
})
}
答案 0 :(得分:1)
我将假设从表单的onSubmit处理程序调用onSearch。表单提交(不会通过反应自动阻止)导致URL更改,而不是调度。
您可以使用:
campolist = db.getAllJamky(campo);
在onSubmit处理程序中,因此浏览器不会处理提交。