Javascript 在redux中更新状态后发送分派和重定向?

Javascript 在redux中更新状态后发送分派和重定向?,javascript,reactjs,redux,dispatch,Javascript,Reactjs,Redux,Dispatch,我是前端开发的新手。现在我在reactJs+redux的基础上研究这个项目(简单的任务编辑器,没有服务器端)。我遇到了下一个问题 我有一些组件可以在url“/addTask/”上显示网页 const TaskCreator = ({ tasks, onAddTask }) => { ... const addTask = () => { const newTask = { id: newId, header: headerInput.value, de

我是前端开发的新手。现在我在reactJs+redux的基础上研究这个项目(简单的任务编辑器,没有服务器端)。我遇到了下一个问题

我有一些组件可以在url“/addTask/”上显示网页

const TaskCreator = ({ tasks, onAddTask }) => {

 ...

 const addTask = () => { 

 const newTask = {
   id: newId,
   header: headerInput.value,
   description: descriptionInput.value
 }

 onAddTask(newTask);
}

return(
 <div>

     ...

    <button className='btn btn-success' onClick={addTask}>Save</button>

</div>
 );
}

export default connect(
(state) => ({
tasks: state.tasks
}),
dispatch => ({

onAddTask: (task) => {
  const payload = {
    id: task.id,
    header: task.header,
    description: task.description
  };
  dispatch({ type: 'ADD_TASK', payload });
  browserHistory.push('/');
}


})
)(TaskCreator);
状态已更新,但浏览器未重定向

如何异步更新状态(使用dispatch)并在状态更新后重定向到url
/


感谢您的改进

您应该知道如何在react和redux中处理异步(如连锁反应)


Redux传奇对你有帮助

最终,我找到了解决问题的方法

实际上,我的问题是在重新加载浏览器时清除
状态。当我尝试使用
push(
/
时,它会重新加载网页,以便
状态
变量被清除,并且在“/”url上看不到新的(添加到“/addTask/”页面)任务

为避免清除网页,需要返回(在浏览器中)或手动打印“/”url。我找到了手动输入“/”url的程序模拟。要做到这一点,需要改变:

 <button className='btn btn-success' onClick={addTask}>Save</button>
onClick
handle单击(保存新任务)并将
重定向到“/”url


谢谢大家的回答。

您是否尝试过使用。然后,在调度成功启动后,在调度一个操作以执行重定向之后?@AndyTheos,我尝试使用
dispatch(addTaskAction(task))。然后((response)=>{dispatch(push('/');})但出现错误:无法读取未定义的属性“then”。感谢您的帮助。我发现我的问题是在重新加载浏览器页面后处于清除redux状态,这就是为什么
push('/')
无法工作的原因。当我手动输入“/”时,状态不清楚。我需要一个完全相同的程序命令。
 <button className='btn btn-success' onClick={addTask}>Save</button>
<Link className='btn btn-success' to=`/` onClick={addTask}>Сохранить</Link>