我是React Js的始作俑者,因此我面临一些问题。我正在测试应用程序上,登录用户可以在按下删除按钮时删除他/她的帖子,他/她被重定向到仅显示带有确认消息的弹出模式的路由(我正在使用react门户)。
当用户删除帖子时,他/她将被重定向回具有所有帖子的页面,但是直到用户重新加载页面后,删除的帖子才可见,那是它消失的时候,我似乎找不到一个解决方案。我以为React应该重新渲染,但这似乎没有发生。这是该代码段
反应
<button
onClick={() => this.props.deleteStream(id)}
className="ui negative button"
>
Delete
</button>
<button onClick={() => history.push("/")} className="ui button">
Cancel
</button>
REDUX(ACTION)
export const deleteStream = id => {
return async dispatch => {
await streams.delete(`/streams/${id}`);
history.push("/");
return dispatch({ type: DELETE_STREAM, payload: id });
};
};
我正在使用lodash创建一个新对象,当用户删除具有指定ID的帖子时,该对象会更新
REDUX(REDUCER)
case DELETE_STREAM:
return _.omit(state, "id");
答案 0 :(得分:0)
我建议使用现代JavaScript从对象中删除键。
您使用错误的omit并删除了一个名为“ id”的密钥,但我认为密钥是 ID,您应该使用return _.omit(state, action.payload);
但是最好不要打扰loadash并使用JS
return Object.fromEntries(
Object.entries(state).filter(([key])=>key!==action.payload)
)
如果您打算更频繁地使用它,可以将其放入库函数中。