У меня есть следующий код:
let ctx = ref.current.getContext("2d");
if(ctx){
ctx.lineWidth=1; // here is ok!
ctx.strokeStyle=props.barStroke??"darkgray";// here is ok!
ctx.fillStyle=props.barFill??"blue"; // here is ok!
props.data.map((v,i)=>{
ctx.fillRect(i*10,0,10,props.height); //here it complain about ctx is possibly null!!
ctx.strokeRect(1*10,0,10,props.height);
})
}
Я проверил ctx, и поэтому ctx.lineWidth работает без ошибок, но внутри обратного вызова он сигнализирует, что объект может быть нулевым. Если я использую ctx?.method
, код все равно работает, так как же ctx, проверенный на нулевое значение вне обратного вызова, может стать нулевым внутри него? Здесь ссылка, показывающая проблему.