Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 用TypeScript到达路由器_Reactjs_Typescript_Reach Router - Fatal编程技术网

Reactjs 用TypeScript到达路由器

Reactjs 用TypeScript到达路由器,reactjs,typescript,reach-router,Reactjs,Typescript,Reach Router,我有一些代码看起来像这样 从“React”导入React; 从'@reach/Router'导入{Router,Redirect}; 从“/screens/Posts”导入帖子; 函数App(){ 返回( ); } defaultprop在重定向上表示无效。是否有方法响应键入组件的子级 看起来可能有一种方法可以通过如下方式实现: 但我对TypeScript还是相当陌生,所以我不确定这在实践中究竟会起到什么作用。你正在与之混合 重定向用于重写URL。在您的示例中,似乎希望将用户从“/”重定向到“

我有一些代码看起来像这样

从“React”导入React;
从'@reach/Router'导入{Router,Redirect};
从“/screens/Posts”导入帖子;
函数App(){
返回(
);
}
default
prop在重定向上表示无效。是否有方法响应键入组件的子级

看起来可能有一种方法可以通过如下方式实现:

但我对TypeScript还是相当陌生,所以我不确定这在实践中究竟会起到什么作用。

你正在与之混合

重定向用于重写URL。在您的示例中,似乎希望将用户从“/”重定向到“/posts”,因此在本例中使用重定向是正确的

默认路由用于在用户提供未知路径时显示组件

因此,您可能会创建一个PageNotFound组件,并像这样使用它:

<Router>
  <Redirect from="/" to="posts" noThrow />
  <Posts path="posts" />
  <PageNotFound default />
</Router>
interface Props {
  default: boolean
}

const PageNotFound = (props: Props) => {
  return <div>Page not found</div>;
}
<Router>
  ...
  <PageNotFound default={true} />
</Router>

由于您使用的是Typescript,PageNotFound组件的道具中必须有一个布尔默认属性,如下所示:

<Router>
  <Redirect from="/" to="posts" noThrow />
  <Posts path="posts" />
  <PageNotFound default />
</Router>
interface Props {
  default: boolean
}

const PageNotFound = (props: Props) => {
  return <div>Page not found</div>;
}
<Router>
  ...
  <PageNotFound default={true} />
</Router>
界面道具{
默认值:布尔值
}
const PageNotFound=(道具:道具)=>{
未找到返回页;
}
然后像这样使用它:

<Router>
  <Redirect from="/" to="posts" noThrow />
  <Posts path="posts" />
  <PageNotFound default />
</Router>
interface Props {
  default: boolean
}

const PageNotFound = (props: Props) => {
  return <div>Page not found</div>;
}
<Router>
  ...
  <PageNotFound default={true} />
</Router>

...

出现错误的原因可能是?属性不是组件的子级。在您的示例中,重定向是路由器的子级,默认值是重定向的属性。