重定向后不反应呈现

时间:2020-03-11 17:44:39

标签: reactjs react-redux

我是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");

1 个答案:

答案 0 :(得分:0)

我建议使用现代JavaScript从对象中删除键。

您使用错误的omit并删除了一个名为“ id”的密钥,但我认为密钥 ID,您应该使用return _.omit(state, action.payload);

但是最好不要打扰loadash并使用JS

return Object.fromEntries(
  Object.entries(state).filter(([key])=>key!==action.payload)
)

如果您打算更频繁地使用它,可以将其放入库函数中。