在做项目的过程中,遇到了一个问题,就是在从移动端列表页,跳转到详情页面时,使用 location.state 带过去的列表数据,但是,当在详情页面刷新时,location.state 里面的数据会清空,所有就需要在渲染数据之前,判断 state 里面是否有数据,当 state 为 undefined 时,返回列表页面。
记录一下解决方法,免得忘记。
const CreateOrder = (props) => {
const { location: { state } } = props;
// 判断 rowData 是否有数据,如果没有数据,返回上一页
if (!state) {
router.go(-1);
return false;
}
return (
<div>
<NavBar onLeftClick={() => router.goBack()} icon={<Icon type="left"/>}>标题</NavBar>
<div className="am-list">
{listCard({ title: '---信息', list: voucherColumns(state) })}
</div>
</div>
);
};
export default CreateOrder;