Javascript 如何通过从React Native中的字符串引用对象的值来访问对象?

Javascript 如何通过从React Native中的字符串引用对象的值来访问对象?,javascript,react-native,Javascript,React Native,我想做的是,我有一个文件,上面写着permissions.js,内容如下: Permissions.js module..exports = { Student: { Read: true, Service: "StudentService", Teach: false }, Teacher: { Read: false, Service: "TeacherService", Teach: true } } // function

我想做的是,我有一个文件,上面写着
permissions.js
,内容如下:

Permissions.js

module..exports = {
  Student: {
    Read: true,
    Service: "StudentService",
    Teach: false
  },
  Teacher: {
    Read: false,
    Service: "TeacherService",
    Teach: true
  }
}
// functions.js
module.exports = {
  StudentService: {
    someFunc1: function() {...},
    someFunc2: function() {...},
    someFunc3: function() {...}
  },
  TeacherService: {
    someFunc1: function() {...},
    someFunc2: function() {...},
    someFunc3: function() {...}
  }
}
// school.js
import functions from "./path-to/functions.js";
import { Student, Teacher } from "./path-to/permissions.js";

// Making it very simple
let service = Student.Service; // service = "StudentService"
service.someFunc1() // returns someFunc1 is not a function
import { StudentService, TeacherService } from "./path-to/functions.js";

module.exports = {
  Student: {
    Read: true,
    Service: StudentService,
    Teach: false
  },
  Teacher: {
    Read: false,
    Service: TeacherService,
    Teach: true
  }
}
和另一个文件
functions.js

functions.js

module..exports = {
  Student: {
    Read: true,
    Service: "StudentService",
    Teach: false
  },
  Teacher: {
    Read: false,
    Service: "TeacherService",
    Teach: true
  }
}
// functions.js
module.exports = {
  StudentService: {
    someFunc1: function() {...},
    someFunc2: function() {...},
    someFunc3: function() {...}
  },
  TeacherService: {
    someFunc1: function() {...},
    someFunc2: function() {...},
    someFunc3: function() {...}
  }
}
// school.js
import functions from "./path-to/functions.js";
import { Student, Teacher } from "./path-to/permissions.js";

// Making it very simple
let service = Student.Service; // service = "StudentService"
service.someFunc1() // returns someFunc1 is not a function
import { StudentService, TeacherService } from "./path-to/functions.js";

module.exports = {
  Student: {
    Read: true,
    Service: StudentService,
    Teach: false
  },
  Teacher: {
    Read: false,
    Service: TeacherService,
    Teach: true
  }
}
并导入
school.js
中的两个文件:

school.js

module..exports = {
  Student: {
    Read: true,
    Service: "StudentService",
    Teach: false
  },
  Teacher: {
    Read: false,
    Service: "TeacherService",
    Teach: true
  }
}
// functions.js
module.exports = {
  StudentService: {
    someFunc1: function() {...},
    someFunc2: function() {...},
    someFunc3: function() {...}
  },
  TeacherService: {
    someFunc1: function() {...},
    someFunc2: function() {...},
    someFunc3: function() {...}
  }
}
// school.js
import functions from "./path-to/functions.js";
import { Student, Teacher } from "./path-to/permissions.js";

// Making it very simple
let service = Student.Service; // service = "StudentService"
service.someFunc1() // returns someFunc1 is not a function
import { StudentService, TeacherService } from "./path-to/functions.js";

module.exports = {
  Student: {
    Read: true,
    Service: StudentService,
    Teach: false
  },
  Teacher: {
    Read: false,
    Service: TeacherService,
    Teach: true
  }
}

因此,我要做的是使用
service
变量作为
functions.js
StudentService
的参考。无法使用require。

这根本不特定于react native,只适用于现代JS模块。这将有助于:

import * as functions from "./path-to/functions.js"
import { Student } from "./path-to/permissions.js"

let service = Student.Service;
functions[service].someFunc1
但更好的方法是:

perissions.js

module..exports = {
  Student: {
    Read: true,
    Service: "StudentService",
    Teach: false
  },
  Teacher: {
    Read: false,
    Service: "TeacherService",
    Teach: true
  }
}
// functions.js
module.exports = {
  StudentService: {
    someFunc1: function() {...},
    someFunc2: function() {...},
    someFunc3: function() {...}
  },
  TeacherService: {
    someFunc1: function() {...},
    someFunc2: function() {...},
    someFunc3: function() {...}
  }
}
// school.js
import functions from "./path-to/functions.js";
import { Student, Teacher } from "./path-to/permissions.js";

// Making it very simple
let service = Student.Service; // service = "StudentService"
service.someFunc1() // returns someFunc1 is not a function
import { StudentService, TeacherService } from "./path-to/functions.js";

module.exports = {
  Student: {
    Read: true,
    Service: StudentService,
    Teach: false
  },
  Teacher: {
    Read: false,
    Service: TeacherService,
    Teach: true
  }
}

然后你就不必乱用字符串来引用东西了。

这一点也不特定于本地响应,只是现代的JS模块。这将有助于:

import * as functions from "./path-to/functions.js"
import { Student } from "./path-to/permissions.js"

let service = Student.Service;
functions[service].someFunc1
但更好的方法是:

perissions.js

module..exports = {
  Student: {
    Read: true,
    Service: "StudentService",
    Teach: false
  },
  Teacher: {
    Read: false,
    Service: "TeacherService",
    Teach: true
  }
}
// functions.js
module.exports = {
  StudentService: {
    someFunc1: function() {...},
    someFunc2: function() {...},
    someFunc3: function() {...}
  },
  TeacherService: {
    someFunc1: function() {...},
    someFunc2: function() {...},
    someFunc3: function() {...}
  }
}
// school.js
import functions from "./path-to/functions.js";
import { Student, Teacher } from "./path-to/permissions.js";

// Making it very simple
let service = Student.Service; // service = "StudentService"
service.someFunc1() // returns someFunc1 is not a function
import { StudentService, TeacherService } from "./path-to/functions.js";

module.exports = {
  Student: {
    Read: true,
    Service: StudentService,
    Teach: false
  },
  Teacher: {
    Read: false,
    Service: TeacherService,
    Teach: true
  }
}
然后你再也不用乱用字符串引用东西了