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)
描述的示例位于开源prj https://github.com/gyerts/react/blob/master/starters/typescript-scss-redux/src/index.tsx#L19
问题是,由于某种无法解释的原因,我已将属性传递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)