【问题标题】:Why is react-router not picking up a route that is not matched exactly when "exact" is not turned on?为什么当“exact”没有打开时,react-router 没有选择不完全匹配的路由?
【发布时间】:2019-07-30 07:00:05
【问题描述】:

我有以下情况:

render() {
    let redirectRoute = window["reactRoute"];

    if (redirectRoute !== undefined) {
        window["reactRoute"] = undefined;
        return <Redirect to={redirectRoute} push={true} />;
    }

    return (
        <div className="otherContentContainer">
            <Route path="/validation" render={() => <p>TestRender</p>} />
        </div>
    );
}

在我的例子中,上面列出的 sn-p 是受影响的render() 的简化版本。

这里发生的情况如下:我的 ASP.NET 后端服务器返回一个视图,其中包含 window["reactRoute"] 中的子路由(这是我想出的解决 ASP.NET &反应路由)。

然后它会正确重定向到以下 URL:

/Logon/validation/success

重定向成功后,重定向部分不再相关,我尝试渲染某些组件,在本例中是一个简单的&lt;p&gt;,用于基于该路由进行测试。

但是,&lt;Route path="/validation" render={() =&gt; &lt;p&gt;TestRender&lt;/p&gt;} /&gt; 根本没有触发,我不明白为什么。

这是我从 React 路由器文档中获得的内容:

鉴于我没有将我的 &lt;Route&gt; 配置为 exact,我不太明白我与示例有何不同。

你能指出我哪里出错了吗?

【问题讨论】:

    标签: javascript reactjs react-router


    【解决方案1】:

    /Logon/ 似乎有问题。请尝试以下方法:

    <Route path="/Logon/validation" render={() => <p>TestRender</p>} />
    

    或者,您可以在*Router 组件调用中设置basename 属性(如here 所述)。

    【讨论】:

    猜你喜欢
    • 2018-11-18
    • 2015-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-19
    • 2016-09-02
    • 2018-09-16
    相关资源
    最近更新 更多