首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >未在React路由器v5中传递状态

未在React路由器v5中传递状态
EN

Stack Overflow用户
提问于 2019-06-04 04:45:17
回答 1查看 237关注 0票数 1

在React Router v5中执行Redirect时,路径名将正常工作,但附加的state属性在目标组件中始终是未定义的。

我使用默认的React Router SSR设置,如下所示:https://reacttraining.com/react-router/web/guides/server-rendering/putting-it-all-together

我不确定这是不是一个SSR错误,我需要向SSR添加一些东西,或者有一些东西我应该添加到重定向的to对象中。

ClientSource.js

代码语言:javascript
复制
<Redirect from={from} to={{ pathname: path, state: { data } }} />;

ClientTarget.js

代码语言:javascript
复制
const TargetComponentContainer = ({ location }) => ( console.log(location) );
...
export default withRouter(CampaignPageContainer);

Route.js

代码语言:javascript
复制
<Route path="/:slug/:container" exact render={props => <TargetComponentContainer {...props} />} />

实际上没有错误,当我使用this.props.location.state访问重定向目标上的状态时,它是undefined

我很感谢任何人的帮助。

EN

回答 1

Stack Overflow用户

发布于 2021-02-20 16:19:01

是的,你是对的。状态不能通过。

解决方案

你可以在search.There中添加参数,这是一个对你很有用的包。包名是query-string

代码语言:javascript
复制
yarn add query-string
or
npm i query-string

如何使用?

代码语言:javascript
复制
import queryString from 'query-string';
const params = queryString.parse(window.location.search);

参数将显示为对象。

代码语言:javascript
复制
eg: /detail?id=123456&name=fred

在parsing.You可以像这样得到它之后。

代码语言:javascript
复制
{
  id: '123456',
  name: 'fred'
}

查看有关query-string的更多接口

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56434341

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档