next js动态路由刷新时重定向到主页

Fat*_*ani 5 reactjs next.js

我的项目中有一条动态路线,但它不是 ssr。 在此输入图像描述

当我刷新页面时,它会重定向到主页,但在其他页面中,刷新会按预期进行。我实际上已添加trailingSlash: true到我的 next.config 但它仍然不起作用。

 const redirectToLivePage = async () => {
    const result = await dispatch(
      getMeetingAction(meetingId, { shares_count: shares }),
    );
    
    if (result.ok) {
      router.push(`/meetings/${meetingId}/shares_count=${shares}`);
    }
  };
Run Code Online (Sandbox Code Playgroud)

这是我的动态页面的代码。

const MeetingPage = () => {
  useEffect(() => {
    let interval;
    if (data?.data.stream_status !== 'complete') {
      interval = setInterval(() => {
        dispatch(getMeetingAction(id, { shares_count: shares }));
      }, 5000);
    }

    return () => {
      clearInterval(interval);
    };
    
  }, [data]);

  return (
      <>
        {data?.data?.stream_status === 'complete' ? (
          <Player src={data?.data?.stream_hls_playlist || ''} />
        ) : (
          <div
            className={s.poster}
            style={{ backgroundImage: `url(${poster})` }}
          >
            <div className="container">
              <p>{BE_PATIENT}</p>
            </div>
          </div>
        )}
        <div className={cs('container', s.message)}>
          <SendMessage id={data?.data?.id} />
        </div>
      </>
  );
};

export default MeetingPage;

Run Code Online (Sandbox Code Playgroud)

它发生在生产中,在本地运行良好。

mas*_*ino 1

可能与 NextJS 警告有关,我也遇到了同样的问题,你可以在这里阅读

应通过以下方式修复:

export async function getServerSideProps(context) {
    return {
        props: {},
    };
}
Run Code Online (Sandbox Code Playgroud)

另外不要忘记重新启动应用程序。

希望这对其他人有帮助。

2023 年 2 月 7 日更新

这是一个示例:

function MyComponent () {
//
}

export async function getServerSideProps(context) {
    return {
        props: {},
    };
}

export default MyComponent;

Run Code Online (Sandbox Code Playgroud)

参考:https://nextjs.org/docs/basic-features/data-fetching/get-server-side-props