当前位置:  开发笔记 > 前端 > 正文

通过this.history.pushState()传递状态

如何解决《通过this.history.pushState()传递状态》经验,为你挑选了1个好方法。

我正在使用react-router 1.0和他们的历史集成.

import { createHistory, useBasename } from 'history'

const history = useBasename(createHistory)({
    basename: '/base-path'
});

export default (
    
        
            
        
    
);

我正在尝试从API和URL中删除ID,并在JSON对象中传递HATEOAS创建的自我链接.我想通过pushState状态参数传递数据.

onClickEditButton(selfLinkObject) {
    this.history.pushState(selfLinkObject, "/my/url");
}

但是当我试图获得状态时,它没有被传递.

import React from "react"
import { History } from "react-router"

export default React.createClass({
    mixins: [History],
    componentDidMount() {
        console.log(this.state);
        console.log(this.history.state);
        console.log(history.state);
    },
    render() {
        

Check the console to see if the state is passed from the pushState(state, url, params);

} });

根据Mozilla的pushState文档,这似乎是pushState的工作方式,因为浏览器将状态对象保存到用户的磁盘,以便在用户重新启动浏览器后恢复它们.

有没有人知道如何或者我是否可以将数据传递给州或者是否有更好的方法来做到这一点?



1> knowbody..:

状态是location这样的,你可以通过props它是你的路由组件来访问它:this.props.location.state或者获取location上下文的对象.

查看v3文档中的Pinterest示例,它正是您想要的.

编辑: 以下是React Router v4中示例的链接:https: //reacttraining.com/react-router/web/example/modal-gallery


DUDE!这完全是我需要的......我以为我搜索了文档的每一部分.我真的很感谢你!你是摇滚明星!
@SteveBuzonas我更新了链接
推荐阅读
mobiledu2402851373
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有