Javascript 在redux中更新状态后发送分派和重定向?
我是前端开发的新手。现在我在reactJs+redux的基础上研究这个项目(简单的任务编辑器,没有服务器端)。我遇到了下一个问题 我有一些组件可以在url“/addTask/”上显示网页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
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>