我正在使用 开发视频聊天应用程序react-native-voximplant
,一切正常,但是当应用程序第一次加载时,该login
功能正在useEffect
. 所以,问题是,当我的HomeScreen
挂载时,useEffects'应该触发并且我应该登录voximplant sdk,现在如果我点击呼叫图标,控制台中会显示以下内容:
当 HomeScreen 挂载时:
LOG Client: emit: no handlers for event: AuthResult
LOG Error while trying to login to voximplant: {"code": 491, "name": "AuthResult", "result": false}
LOG Client: emit: no handlers for event: ConnectionEstablished
现在,当我点击通话拨打电话时:
// after a second...
WARN Possible Unhandled Promise Rejection (id: 0):
"NOT_LOGGED_IN"
现在,当我点击 save (ctrl+s)时,我会登录,现在如果我拨打电话,它就可以了!我不知道我在这里做错了什么。有什么问题useEffect
还是我做错了什么?
主屏幕代码:
import {Voximplant} from 'react-native-voximplant';
const HomeScreen = () => {
const voximplant = Voximplant.getInstance();
useEffect(() => {
const signInToVoximplant = async () => {
try {
const fqUsername = '...'; // credentials are correct, don't worry about them.
const password = '...';
await voximplant.login(fqUsername, password);
} catch (error) {
console.log('Error while trying to login to voximplant: ', error);
}
};
signInToVoximplant();
}, []);
useEffect(() => {
const connect = async () => {
const status = await voximplant.getClientState();
if (status === Voximplant.ClientState.DISCONNECTED) {
await voximplant.connect();
} else if (status === Voximplant.ClientState.LOGGED_IN) {
console.log('[INFO] VOXIMPLANT CONNECTED');
return;
}
};
connect();
}, []);
}
return ...
只有当call
我点击ctrl+s
ie 保存文件时才会起作用,否则它会Unhandled Promise rejection...
因为它没有登录而抛出,但是我已经在useEffect
.