使用 hooks 在渲染数据之前判断上个页面传过来的数据是否为空

86 阅读1分钟

在做项目的过程中,遇到了一个问题,就是在从移动端列表页,跳转到详情页面时,使用 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;