我正在开发一个在线流媒体应用程序,用户可以在其中创建、编辑、删除和托管流。问题是,当我尝试删除流时,它会在数据库中删除它,但我显示流的主要组件不会重新加载,尽管它在用户创建或编辑流时会重新加载自己。
这是我的动作创作者:
export const deleteStream = (id) => async dispatch => {
await streams.delete(`/streams/${id}`);
dispatch({ type:'DELETE_STREAMS', payload: id });
history.push('/');
}
这是减速器:
const streamReducer = (state = {}, action) => {
switch(action.type){
case 'DELETE_STREAM':
return {...state, [action.payload]: undefined};
//I also used lodash to delete it alternatively as- return _.omit(state, action.payload);
default:
return state;
}
}
此外,不要忘记,对象是在我的服务器中进行关键插值的,即,我有一个对象的对象,而不是一个对象数组。
复数问题!CCD_ 1与CCD_。你分派前者,减少后者。
这就是为什么在某个地方定义你的行为总是一个好主意,即使只是export const X = "X"
。然后总是引用它们,而不是使用字符串文字。
更新React渲染并不是一个错误,但redux从未更新过。一个很好的调试工具是redux devtoolshttps://github.com/reduxjs/redux-devtools,您可以看到redux的状态和每个调度的操作及其影响。