当前位置: 首页 > 面试题库 >

React Typescript:添加位置状态以响应路由器组件

秦焱
2023-03-14
问题内容

我有正常路线

function LoginPage(props: RouteComponentProps): React.ReactElement {...
}

使用RouteComponentPropsfrom react-router-dom

奇怪的是,这个组件很长一段时间都没有出现问题,但是现在当我用history.push(location.state.from.pathname)说的时候,它无法在travis-
ci上编译Property 'from' does not exist on type '{}'.

我在我的PrivateRoute组件中设置了此状态,这是带有重定向的非常标准的

<Redirect
  to={{ pathname: '/login', state: { from: props.location } }}
/>

如何更新location要包含的from对象的类型pathname: string;

编辑:

解决方案是添加

COPY yarn.lock /usr/src/app/

复制package.json之后,将其复制到我的Dockerfile中。


问题答案:

看起来您没有对软件包使用锁定文件。我建议您找到一个工作环境(在先前生成的docker映像中,或者从一个团队成员中),然后在其中生成package-
lock.json(或yarn.lock)。我用了这个命令npm install --package- lock。在问题完全解决之前,它将为您提供首次帮助。



 类似资料:
  • 问题内容: 在模块配置之后,例如在service中,有没有办法以编程方式将状态添加到$ stateProvider? 为了给这个问题增加更多的上下文,我有两种情况可以使用: 尝试强制在模块配置中定义的状态上重新加载,问题是状态将 reloadOnSearch 设置为 false ,所以当我尝试 $ state.go(’state.name’,{new:param},{reload:真正}); 什么

  • 我使用反应路由器作为根和"/"下的所有请求都指向反应路由器。并且当响应路由器发现url与任何定义的组件不匹配时,它将呈现NoMatch组件。问题来了,NoMatch被渲染了,这就是我想要的,但是状态代码仍然是200而不是404。当我的css或js文件被放置在一个错误的url反应路由器做同样的事情,它的反应200!然后页面告诉我,我的资源内容类型有一些问题! 那么,我如何使用react router

  • 反应路由器:链接和路由不传递状态到组件 我正在用React、Redux和React路由器构建一个在线购物应用程序。在主页上,显示所有项目。我希望用户能够点击一个图像,并被带到一个页面,其中包含该项目的项目详细信息。 下面是我如何做到这一点的: 在App.js中,我使用BrowserRouter、Route和Switch进行路由 这看起来很简单,我在网上看到了很多关于这一点的讨论。以下是我已经尝试过

  • 我试图使用react router将props从app.jsx传递到某个路由组件,但出现以下错误

  • 在下面的示例中:get to“http://localhost/foo/bar”(已创建状态)的响应位置为“http://localhost/foo/bar/wibble”(请注意/foo/bar) 而get to“http://localhost/foo/baz”(ok status)则响应“http://localhost/wibble”的位置,这正是我们所希望的。