Javascript 将target=\u blank添加到react中的link-in按钮不会打开新页面,但会禁用它吗?

Javascript 将target=\u blank添加到react中的link-in按钮不会打开新页面,但会禁用它吗?,javascript,reactjs,react-router-dom,Javascript,Reactjs,React Router Dom,我正在开发一个带有React+Material UI的网页。我想打开指向指定链接的新选项卡,并尝试了此操作。如果我没有添加target=\u blank,它会重定向到链接,但它会在同一个选项卡中打开。如果我添加target=\u blank,按钮根本不起作用?我的反应路由dom版本是^5.2.0。我在edge和chrome上试过,所以问题不是特定于浏览器。我使用的是has路由器,应用程序可能部署到具有不同基本url名称的服务器,因此我希望避免将url硬编码为“http://...“。任何帮助都将

我正在开发一个带有React+Material UI的网页。我想打开指向指定链接的新选项卡,并尝试了此操作。如果我没有添加target=\u blank,它会重定向到链接,但它会在同一个选项卡中打开。如果我添加target=\u blank,按钮根本不起作用?我的反应路由dom版本是^5.2.0。我在edge和chrome上试过,所以问题不是特定于浏览器。我使用的是has路由器,应用程序可能部署到具有不同基本url名称的服务器,因此我希望避免将url硬编码为“http://...“。任何帮助都将不胜感激

 const markLink = (
            <Link
                to={
                    {
                        pathname: "/AssessmentList",
                        search: "?groupId =" + this.state.groupId + " & unitOfferingId=" + this.state.unitOfferingId
                            + "&userId=" + this.state.userId + "&role=" + this.state.role + "&groupName=" + this.state.selectedGroup.group_name
                    } 
               
                } 
                target="_blank"
                style={{ textDecoration: "none", color: "white" }}
            >

                Mark
            </Link>);
const markLink=(
做记号
);
然后我把它用在我的按钮上

<ButtonMenu items={[]} name={markLink} working={this.state.project_archived} action={() => {
            }} />
{
}} />

编辑:我还尝试了target={“\u blank”}。我在以前的文章中尝试过这些建议,但似乎大多数URL需要是“http://”,而不是相对路径。我不知道如何传递动态URL。

使用
react router
的目的是根据
URL
呈现组件。如果您计划在新链接上打开页面,只需使用常规的
a
元素即可

const { groupId, unitOffering, userId, role, selectedGroup } = this.state;

const path = `/AssessmentList?groupId=${groupId}&unitOfferingId=${unitOfferingId}&userId=${userId}&role=${role}&groupName=${selectedGroup.group_name}`;

return (
  <a
    href={path}
    target="_blank"
    rel="noopener noreferrer"
    style={{ textDecoration: "none", color: "white" }}>
    Mark
  </a>
);
const{groupId,unitOffering,userId,role,selectedGroup}=this.state;
const path=`/AssessmentList?groupId=${groupId}&unitOfferingId=${unitOfferingId}&userId=${userId}&role=${role}&groupName=${selectedGroup.group_name};
返回(
);

你试过
target={“\u blank”}
吗?是的,我也试过了,这回答了你的问题吗?不,我访问过那个页面。那里的大多数答案都必须使用“http:”输入URL,我不知道如何传入动态URL?如果我不使用标记,路由将在开始时没有#,这将导致找不到该页并将其重新路由到索引页。我正在使用哈希路由器。能否将
#
添加到path变量?但我之前的回答仍然有效,如果您在新选项卡中打开,则无需使用react-router的
链接
。然而,我尝试将其设置为按钮样式,如果我在标签中嵌入按钮标签,问题仍然存在?这是另一个问题:-)