我正在使用React和Redux以及thunk。我想使用browserHistory.push
,但不知道我应该在哪里调用此函数。比方说,我们有一个组件,它有一个简单的按钮。单击按钮时,我想调用browserHistory.push
方法。我对redux的理解是,我应该发送一个动作({type: 'NAVIGATE'}
)并创建一个thunk,我将调用browswerHistory.push
方法。该组件只会请求导航,而thunk实际上会处理请求。
但是,我听到了不同的意见,比如Redux中的操作只应在更新商店时使用。如果您不修改商店,则无需发送操作。
这个问题的最佳解决方案是什么?
答案 0 :(得分:0)
您可以使用push
中的react-router-redux
方法将其绑定为动作创建者,就像任何其他redux操作一样。
import React from 'react'
import { connect } from 'react-redux'
import { push } from 'react-router-redux'
function YourComponent({ redirectTo }) {
return (
<div>
...
<button onClick={() => redirectTo('/nextRoute')}>
Click-me
</button>
</div>
)
}
export default connect(
undefined,
{ redirectTo: push }
)(YourComponent)