错题本:不能调用可能是“未定义”的对象。ts(2722)

1,414 阅读1分钟

开发中你是否也常常会遇见 不能调用可能是“未定义”的对象。ts(2722) image.png

Q:不能调用可能未定义的对象

A:可选属性如果没有赋值,那么获取到的值是 undefined;对于可选方法,必须先进行判断,再调用,否则会报错;

antd在定义

reloadAndRest?: () => Promise<void>;

是可选方法:如图

image.png

所有我们正确的调用方式为:

   if(ticketListRef&&ticketListRef.current&& ticketListRef.current.reloadAndRest){
      ticketListRef?.current?.reloadAndRest();
    }