仅在值更改时重新加载

reload only when value is changed

只有在从一种内容切换到另一种内容时,我才尝试在此处重新加载浏览器。

  React.useEffect(
    () => {
      if (props.isContentDefined)
          window.sessionStorage.setItem("isContentDef", props.contentId);
      var val = window.sessionStorage.getItem("isContentDef");
      if (val !== "" && val) {
              window.location.reload();
              window.sessionStorage.clear();
       }
    },
    [props.isContentDefined]
  );

加载初始内容时 -> 无需重新加载。 当用户从一个内容切换到另一个内容时 -> 需要重新加载。

props.isContentDefined 可从后端获得

您可以像这样修改您的 'if' 条件,方法是检查会话值是否也不同于新的道具值。然后重新加载

 React.useEffect(
    () => {
      if (props.isContentDefined)
      var val = window.sessionStorage.getItem("isContentDef");
      if (val !== "" && val && val !== props.isContentDefined)) {
              window.location.reload();
              window.sessionStorage.clear();
      }else
         window.sessionStorage.setItem("isContentDef", props.contentId);
    },
    [props.isContentDefined]
  );