//将这部分代码(React hooks)声明在 useEffect 外部
const [userText, setUserText] = useState("");
const [npcText, setNpcText] = useState("");
const [keyPressed, setKeyPressed] = useState(false);
const [isTalking, setIsTalking] = useState(false);
const finalizedUserText = useRef();
const npcTextRef = useRef();
------------------------------------------------------------------------------------
convaiClient.current.setResponseCallback((response) => {
if (response.hasUserQuery()) {
var transcript = response.getUserQuery();
var isFinal = transcript.getIsFinal();
if (isFinal) {
finalizedUserText.current += " " + transcript.getTextData();
transcript = "";
}
if (transcript) {
setUserText(finalizedUserText.current + transcript.getTextData());
} else {
setUserText(finalizedUserText.current);
}
}
if (response.hasAudioResponse()) {
var audioResponse = response?.getAudioResponse();
npcTextRef.current += " " + audioResponse.getTextData();
setNpcText(npcTextRef.current);
}
});