a頁面跳轉到b頁面, 通過state傳參
a頁面
this.props.history.push({
pathname: `/chunan-my-declare-detail`,
state: {
record,
takenCount: record.takenCount,
takenTicketTime: record.takenTicketTime,
policyCode: this.state.policyCode,
legalPersonName: this.state.farenData.legalPersonName,
legalPersonPhone: this.state.farenData.legalPersonPhone,
}
});
b頁面接收
this.props.location.state
當我刷新當前頁面時 this.props,location.state爲undefined
???
查了一下發現,是使用 HashRouter的原因, 如果是BrowserRouter就不會出現這個問題,這兩個各有各的優勢和劣勢具體沒去了解
另一種解決方式 使用 sessionStorage
const { location } = this.props
let takenTicketTime = '';
let takenCount = '';
let policyCode = '';
let legalPersonName = '';
let legalPersonPhone = '';
// let farenData = {};
if (location.state) {
takenTicketTime = location.state.takenTicketTime;
sessionStorage.setItem('takenTicketTime', takenTicketTime);
takenCount = location.state.takenCount;
sessionStorage.setItem('takenCount', takenCount);
policyCode = location.state.policyCode;
sessionStorage.setItem('policyCode', policyCode);
legalPersonName = location.state.legalPersonName;
sessionStorage.setItem('legalPersonName', legalPersonName);
legalPersonPhone = location.state.legalPersonPhone;
sessionStorage.setItem('legalPersonPhone', legalPersonPhone);
} else {
takenTicketTime = sessionStorage.getItem('takenTicketTime');
takenCount = sessionStorage.getItem('takenCount');
policyCode = sessionStorage.getItem('policyCode');
legalPersonName = sessionStorage.getItem('legalPersonName');
legalPersonPhone = sessionStorage.getItem('legalPersonPhone');
}
this.setState({
policyCode,
takenCount,
takenTicketTime,
legalPersonName,
legalPersonPhone,
})
```