我正在尝试使用react-router-redux的推送方法来导航我的路线。我已将onClick方法附加到我的链接。现在当我点击这个链接时,我应该去/ image。因此我把push方法放在onClick方法中。喜欢这个
import { push } from 'react-router-redux'
toImagePage(){
this.setState({activePanel:"image"},()=>{
this.props.toImagePage()
})
push('/image')
}
<div className="navbar-item" onClick={() => this.toImagePage()}>
Push不起作用但是。我没有导航到/ image routet。但后来我把push放在matchDispatchToProps中,然后就可以了
`
<div className="navbar-item" onClick={() => this.props.toTriviaPage()}`>
const mapDispatchToProps = dispatch => bindActionCreators({
toTriviaPage: () => {
//this.setState({activePanel:"trivia"})
push('/trivia')
},
toImagePage: () => {
//this.setState({activePanel:"image"})
push('/image')
}
}, dispatch)
如何让它在组件内的任何其他方法中工作?
答案 0 :(得分:0)
push
是一个动作生成器,因此它只创建一个可以调度的对象。因此,如果您想在组件中使用push,则必须将其映射到dispatch,有几种方法可以执行此操作:
connect
,这会将调度道具放在组件上,您可以使用dispatch(push('/location'))
connect
,connect(mapStateToProps,{push})
这将使用dispatch自动换行推送,因此调用push实际上是(...args) => dispatch(push(...args))