React 的 useRef 中使用 "addTrack" 时出现类型错误 "MediaStream"
A type error of "MediaStream" occurs when using "addTrack" in React's useRef
addTrack
中的myStreamRef.current
出现类型错误。
const myStreamRef = useRef<MediaStream>();
...
if (myStreamRef.current) {
myStreamRef.current.getTracks().forEach((track) => {
peerRef.current?.addTrack(track, myStreamRef.current);
});
}
Argument of type 'MediaStream | undefined' is not assignable to parameter of type 'MediaStream'.
Type 'undefined' is not assignable to type 'MediaStream'.
如下图,如果用if
语句再次排除被undefined
的可能性,就不会再出现这个错误了。
但是我已经用最外层的if
语句去除了成为undefined
的可能性,所以我不知道为什么我要重新组合它。
如果您知道答案或知道解决此问题的更简洁方法,请告诉我。
const myStreamRef = useRef<MediaStream>();
...
if (myStreamRef.current) {
myStreamRef.current.getTracks().forEach((track) => {
if (myStreamRef.current) {
peerRef.current?.addTrack(track, myStreamRef.current);
}
});
}
出现这个问题是因为内部方法必须独立运行。
addTrack
中的myStreamRef.current
出现类型错误。
const myStreamRef = useRef<MediaStream>();
...
if (myStreamRef.current) {
myStreamRef.current.getTracks().forEach((track) => {
peerRef.current?.addTrack(track, myStreamRef.current);
});
}
Argument of type 'MediaStream | undefined' is not assignable to parameter of type 'MediaStream'.
Type 'undefined' is not assignable to type 'MediaStream'.
如下图,如果用if
语句再次排除被undefined
的可能性,就不会再出现这个错误了。
但是我已经用最外层的if
语句去除了成为undefined
的可能性,所以我不知道为什么我要重新组合它。
如果您知道答案或知道解决此问题的更简洁方法,请告诉我。
const myStreamRef = useRef<MediaStream>();
...
if (myStreamRef.current) {
myStreamRef.current.getTracks().forEach((track) => {
if (myStreamRef.current) {
peerRef.current?.addTrack(track, myStreamRef.current);
}
});
}
出现这个问题是因为内部方法必须独立运行。