接下来 js getServerSideProps 使用 props 重定向

mag*_*Dev 9 reactjs next.js

重定向后我可以获得道具吗?

return {
  redirect: {
    destination: '/auth-page',
    permanent: false,
  },
  props: {
    initialReduxState: {user},
  }
}
Run Code Online (Sandbox Code Playgroud)

重定向后,我尝试获取“auth-page”上的道具。道具对象是空的。

K.A*_*K.A 5

实际上,我在将道具从第 1 页 SSR 传递到第 2 页时遇到了同样的问题,我最终通过传递查询参数找到了以下解决方案。

这是一个简单的例子:

  • page1:在“服务器端 props”函数中,我们将传递“force_logout”,例如:

    export async function getServerSideProps(context) {
    
      return {
          redirect: {
            permanent: false,
            destination: "/users/login_page/?force_logout=true",
          },
        };
    }
    
    Run Code Online (Sandbox Code Playgroud)
  • page2 :我们将在“服务器端 props”中接收查询参数并将其作为 props 发送到同一页面,如下所示:

    const loginPage = (props) => {
      const {query} = props ?? null
    
    
    
      useEffect(() => {
    
     if(query?.force_logout === 'true'){
          console.log('yes force_logout is received ')
          const isServerSide = typeof window === "undefined";
          if(!isServerSide){
              localStorage.removeItem('test_key')
          }
         }
    
    
       }, [])
    
    
    
    
      return(
         <div> test login page </div>
        )
    }
    
    export default loginPage
    
    export async function getServerSideProps(context) {
      const {query} = context
      console.log(query)
      return {
          props: {query}
      }
    }
    
    Run Code Online (Sandbox Code Playgroud)

这只是示例,并根据您的情况/要求进行更改。

我希望这有帮助。