是否是声明模型类(如java)的正确方法,以及如何在react native中将其传递到第二个屏幕?
export default class UserModel {
stateName;
username;
email;
mobile;
gender;
address;
constructor() {}
setStateName(stateName) {
this.stateName = stateName;
}
setUserName(username) {
this.username = username;
}
setEmail(email) {
this.email = email;
}
setMobile(mobile) {
this.mobile = mobile;
}
setGender(gender) {
this.gender = gender;
}
setAddress(address) {
this.address = address;
}
}
答案 0 :(得分:1)
我认为这是您的UserModel.js
。
现在,您可以像导入其他组件一样导入模型了:
import UserModel from './location/UserModel';
但是,如果这样做,则每次导入时都要实例化UserModel。
如果您想防止这种情况,只需实例化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
或
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 */);
答案 1 :(得分:1)
步骤1:制作UserModel.js
created()
注意:如果您不想全局设置,请不要导出。
步骤2:Screen1.js-设置UserModel并从screen1传递。
Management.vue
第3步:在另一个屏幕上接收模型类。
class UserModel {
constructor() {
stateName,
username,
email,
mobile,
gender,
address;
}
}
输出:
_handlePress = async () => {
UserModel.username = "Vishal Patoliya"
this.props.navigation.navigate('UserList',{userData: UserModel});
}