渲染没有返回任何内容;试图重定向到主页

Posted

技术标签:

【中文标题】渲染没有返回任何内容;试图重定向到主页【英文标题】:Nothing was returned from render; trying to redirect to homepage 【发布时间】:2020-06-29 16:09:05 【问题描述】:

我正在使用 react 进行一个学校项目,但我在重定向到某个页面时遇到了困难。我正在使用 react-router-dom 进行导航。在我的代码中,如果测试数组不包含任何内容,我会尝试通过history.push("/") 重定向到主页。如果我将 else 渲染条件更改为随机的 p 标签,它将渲染该文本,但我只是希望它在 else 语句中重定向。

edit:刷新页面时发生错误,正在推送url。所以如果我再次刷新,我在首页。

import React from "react";
import styles from "./Profile.module.css";
import  useParams  from "react-router-dom";
import  useStores  from "../../hooks/useStores";
import Trade from "../Trade/Trade";
import  useHistory  from "react-router-dom";

const Profile = () => 
  const history = useHistory();
  const stores = useStores();

  let  id  = useParams();
  const test = stores.dataStore.openTrades.filter(
    trade => trade.user.id.toString() === id
  );

  if (test.length > 0) 
    return (
      <>
        <div className=styles.profileHead>
          <img
            src=process.env.PUBLIC_URL + "/assets/img/poke-logo.svg"
            
            
            
          />
          <p
            className=styles.profileName
          >`Profile of $test[0].user.name`</p>
        </div>
        <div className=styles.trades>
          <h2 className=styles.profileTrades>
            `$test[0].user.name's trades`" "
            <span className=styles.tradesLength>(test.length)</span>
          </h2>
          <div className=styles.tradesColumn>
            test.map((trade, index) => (
              <Trade key=index trade=trade index=index></Trade>
            ))
          </div>
        </div>
      </>
    );
   else 
    return(
    history.push('/')
    );
  
;

【问题讨论】:

【参考方案1】:

如果您想更改 函数 中的 url,请使用 history.push。当它基于你渲染的东西时,你应该使用Redirect

在这种情况下,您应该使用Redirect,如下所示:

 else 
  return(
    <Redirect to="/" />
  );

如果您基于点击按钮更改页面,那么history.push 将是合适的。

<button onClick=() => history.push('/')>Go to Home</button>

【讨论】:

谢谢!我现在明白这个概念了。

以上是关于渲染没有返回任何内容;试图重定向到主页的主要内容,如果未能解决你的问题,请参考以下文章

JS - 重定向并返回主页

WordPress 实时搜索结果重定向到主页

php sdk 的 Facebook 'redirect_uri' 参数未重定向到传递的 uri(仅重定向返回主页)

如果他没有登录,如何将用户重定向到网站中的特定页面?

如何从通配符路由重定向到主页?

空搜索重定向到主页