react-router-dom 失败的道具类型:“string”类型的道具“exact”无效

Yur*_*rts 3 reactjs react-router-dom

当我尝试使用<Route />组件时遇到一些奇怪的警告。请注意<Route exact={"true"} .../>代码示例中描述的产生奇怪浏览器警告的一行。

ReactDOM.render(
    <Provider store={appStore}>
        <ConnectedRouter store={appStore} history={history}>
            <BrowserRouter>
                <Switch>
                    <Route exact={"true"} path="/" component={App}/>
                    <Route render={() => <h1>404, not found</h1>} />
                </Switch>
            </BrowserRouter>
        </ConnectedRouter>
   </Provider>,
document.getElementById('root'));
Run Code Online (Sandbox Code Playgroud)

浏览器控制台接下来告诉我:

警告:失败的道具类型: 提供给预期的无效道具exact类型。在路线中(位于 src/index.tsx:19)index.js:1452stringRouteboolean

上一个警告之后的以下警告与文本逻辑完全一致

警告:收到true非布尔属性exact

如果要将其写入 DOM,请传递一个字符串:exact="true" 或exact={value.toString()}。在 a(由 Context.Consumer 创建)中 在 Link(在 App.tsx:25)中 在 header(在 App.tsx:11)中 在 div(在 App.tsx:10)中 在 App(由 Context.Consumer 创建)中 在 Route 中(在 src/index.tsx:19)在 Switch 中(在 src/index.tsx:18)在 Router(由 BrowserRouter 创建)中 在 BrowserRouter 中(在 src/index.tsx:17)在 Router(由 ConnectedRouter 创建)中 在 ConnectedRouter 中(在 src/index.tsx:16)在提供者中(在 src/index.tsx:15)

react-router-dom 失败的道具类型:“字符串”类型的道具“精确”无效 你能帮我解决这个问题吗?嗯!

描述的示例位于开源prj https://github.com/gyerts/react/blob/master/starters/typescript-scss-redux/src/index.tsx#L19

Yur*_*rts 6

问题是,由于某种无法解释的原因,我已将属性传递exact给链接组件。

<Link exact to="/about">About the author</Link>
Run Code Online (Sandbox Code Playgroud)

所以我删除了exact属性并且警告消失了。

<Link to="/about">About the author</Link>
Run Code Online (Sandbox Code Playgroud)