Полагаю, это ваше UserModel.js
. Теперь вы можете импортировать модель как другие компоненты:
import UserModel from './location/UserModel';
Но если вы сделаете это так, вам придется создавать экземпляр UserModel каждый раз, когда вы импортируете его. [1112 ]
Если вы хотите предотвратить это, просто создайте экземпляр UserModel, экспортируйте его в UserModel.js
и импортируйте экземпляр в любое место.
Вот так:
class UserModel {
//...
}
export default new UserModel();
другим способом может быть:
export class UserModel {
//...
}
const GlobalUserModel = new UserModel();
export default GlobalUserModel;
, чтобы выбрать в других файлах, что импортировать:
import { UserModel } from './location/UserModel'; //get new instance
или [1117 ]
import GlobalUserModel from './location/UserModel'; //get global instance
Если вы импортируете через { UserModel }
, вы должны сначала создать экземпляр: new UserModel()
... или наоборот.
Редактировать:
После некоторого обсуждения, это был обязательный ответ:
this.props.navigation.navigate('UserList', { userModel: userModel });
this.props.getParam('userModel', /* optional default value */);
По-видимому, Вы читаете из сокета, возможно, с помощью обертки по входному потоку, такому как BufferedReader. В этом случае можно обнаружить конец потока, когда соответствующая операция чтения возвращается-1 (для необработанного чтения () вызовы), или пустой указатель (для readLine () вызовы).
Определенные операции вызовут SocketException при выполнении на закрытом сокете, с которым необходимо будет также иметь дело соответственно.
Единственный безопасный способ обнаружить другой конец пошел, должен периодически отправлять heartbeat и иметь другой конец тайм-ауту на основе отсутствия heartbeat.