react中介面跳轉 A介面跳B介面,返回A介面,A介面狀態保持不變 localStorage方法
阿新 • • 發佈:2020-08-04
A介面
componentDidMount() { backTop(); let localTemp = JSON.parse(localStorage.getItem('hotTemp')); if (localTemp === undefined || localTemp === null) { //這邊是判斷是不是從B回來的,如果不是,就初始化請求 let params = { page: 1, size: 20 }this.getHotEvent(params); } else { //如果是從B回來的,那麼就把條件啊,資料啊,直接給state進行顯示就可以了 this.setState({ pageNum: localTemp.pageNum, hotEvent:localTemp.hotEvent, success:localTemp.success, total:localTemp.total })if (localTemp.sflag) { //我這邊是做了個是不是填寫了篩選條件的判斷 如果填寫了篩選條件回到A介面的時候,這些篩選條件要顯示出來 this.setState({ defaultInput: localTemp.defaultInput, startTime: localTemp.startTime, endTime: localTemp.endTime, })//this.getIeahotsSearch(localTemp.searchParam); } else { //這邊是沒有任何篩選條件,只要資料顯示就可以了 //this.getHotEvent(localTemp.params); } } } <Link className="recall left transition3" to={{ pathname: "/B", state: {eventArray: item, localState: this.state}, //這邊是我想要保留的資料,通過state傳給B }} >{item.title}</Link>
B介面
componentDidMount() { /*儲存A介面列表的引數*/ if(this.props.location.state.localState!==undefined&&this.props.location.state.localState!==null){ localStorage.setItem("hotTemp", JSON.stringify(this.props.location.state.localState)); //console.log(localStorage.getItem('hotTemp')); } }