如何在react native中声明模型类并如何通过react导航在第二个屏幕中传递整个模型类

时间:2019-01-16 09:59:45

标签: react-native

是否是声明模型类(如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;
    }
}

2 个答案:

答案 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});

    }