我正在开发一个 react redux 应用程序,在该应用程序中,单击按钮我需要更改我的窗口位置。到目前为止,我正在调度按钮单击操作并尝试使用 redux-loop 在减速器中实现导航。
组件js
class Component {
constructor() {
super()
}
render() {
return (
<button onClick={() => this.props.onButtonClick()}>Navigate</button>
)
}
}
const mapDispatchToProps = (dispatch) => {
return {
"onButtonClick": () => dispatch(handleClick())
};
}
动作js
export const handleClick = () => ({
type: NAVIGATE
});
减速器js
export default (state = {}, action) => {
if (action.type === NAVIGATE) {
return loop(state, Cmd.run(navigateTo));
}
};
效果js
export const navigateTo = () => {
window.location = "https://www.stackoverflow.com";
}
除了这个动作之外,我还有很多涉及副作用和状态操作的动作,因此是 redux-loop。
我有两个问题:
navigateTo()
单击按钮时控制不会进入。我究竟做错了什么?我觉得 reducer 不是一个合适的地方,因为我们没有在这里操纵状态。调度按钮单击操作时,放置这段代码的最佳位置是什么?