我正在使用 ml5.js 来训练 ML 模型。我必须使用网络摄像头将图像添加到模型中。train 函数适用于当前代码。但是,当我尝试在train函数内的 if else 语句中设置状态时,当我尝试使用测试按钮对其进行测试时会引发错误。
的值classifier
变为undefined
。
export const Component: React.FC<ComponentProps> = (props: ComponentProps) => {
let classifier: any;
classifier = featureExtractor.classification(capture, videoReady);
}
function final() {
classifier.classify(capture, (error, result) => {
setPrediction(label);
});
}
return (<div>
<Button variant="contained" color="primary" onClick={() => final()}>testing!</Button>
</div>
</div>)
;
};
classifier
是一个变量,因此每次都会重新渲染。useRef 可以在这里使用,但我不知道如何。
const classifier = useRef()
classifier.current
像这样访问它仍然给了我错误。我也尝试为分类器本身创建一个状态,但这似乎对我也不起作用。
这是一个 Codesandbox 来尝试完整的东西。要查看错误,您可以在 train 函数的 if else 语句中设置一个状态:
https://codesandbox.io/s/hardcore-solomon-zb34l?file=/src/Component.tsx