我正在使用ES6,我正在尝试将名为Users的方法中的数据导出到另一个名为的不同js文件中的方法:
users.js
export default class Users {
var User() {
Newuser = {
firstName: 'Tony',
lastname: 'franklyn',
email: `franky@gmail.com`,
password: 'Franklin123'
}
return Newuser;
}
}
login.js
import Users from '../data/user';
const newie = new Users();
export default class Signup {
async Register() {
await t
.typeText(this.firstName,newie.firstName)
}
}
每当我的程序执行时,我得 TypeError:无法读取属性' firstName'未定义的。
我真的对此感到困惑,注意我没有那么多js经验。
答案 0 :(得分:0)
当然!
问题是NewUsers被包装在名为User()
的方法下。而不是newie.firstName
,它应该是:newie.User().firstName
;
一些事情:
const
和let
。避免使用var
。这将防止全局范围被污染,并防止您的变量被覆盖。因此,代替NewUsers
,它应该是:
export default class Users {
// This is a method name.
// Methods do not use var, const or let
User() {
// This would be the variable.
// You would use const, because you are not
// reassigning (using equals sign) its content.
const Newuser = {
firstName: 'Tony',
lastname: 'franklyn',
email: `franky@gmail.com`,
password: 'Franklin123'
}
return Newuser;
}
}
<强> users.js 强>
module.exports = {
firstName: 'Tony',
lastname: 'franklyn',
email: `franky@gmail.com`,
password: 'Franklin123'
}
如果您想要多个用户,请创建一个数组:
module.exports = [{
firstName: 'Tony',
lastname: 'franklyn',
email: `franky@gmail.com`,
password: 'Franklin123'
},
{
firstName: 'Pedro',
lastname: 'Smith',
email: `smith@gmail.com`,
password: 'Smithy123'
}
}
]
并在login.js
// When you import Users, it will bring the properties you defined above.
import Users from '../data/user';
export default class Signup {
async Register() {
await t
.typeText(this.firstName,Users.firstName)
}
}
//如果你采用多用户方法,那么:
而不是Users.firstName
,您可以使用:
// Fraklyn
Users[0].firstName
// Pedro
Users[1].firstName