如何访问导入模块的其他功能中的道具
How to access props in other functions of imported modules
假设我创建了一个具有简单功能的基本模块,如helper.js
export function HelloChandu() {
//How to access navigator props from here.
}
export function HelloTester() {
HelloChandu();
}
然后我在我的组件中导入了这个模块作为import * as Helper from './helper';
在某个元素中,我当时调用了onpress={Helper.HelloTester.bind(this)}
,所以现在我可以访问HelloTester
函数中的this.ops,但不能访问HelloChandu
函数中的this.props。
问题:如何从helper.js模块中的任何函数访问this.props
?比如有10-20个函数,我不必作为参数传递。
谢谢
如果您想在其中一个函数中访问this.ops,则需要显式传递this
,或者在使用它们之前将所有函数绑定到当前this
。
有几种方法可以做到这一点。
function HelloChandu() {
alert(this.props);
}
function HelloTester() {
HelloChandu.apply(this);
// HelloChandu.call(this);
// HelloChandu.bind(this)();
// this::HelloChandu(); // Experimental!
}
const obj = {
props: 'my props'
}
HelloTester.bind(obj)()
另一种方法是将所有函数封装在另一个函数中。
function helpers() {
const functions = {
HelloChandu: () => {
alert(this.props);
},
HelloTester: () => {
functions.HelloChandu();
}
};
return functions;
}
const obj = {
props: 'my props'
}
helpers.call(obj).HelloTester();
1.您可以将道具持久化到AsyncStorage,无论何时需要,您都可以访问此道具。
2.或者,如果你熟悉闭包,你可以这样做:
function Helper(ps) {
function test() {
console.log(ps.sex);
}
function test2() {
console.log(ps.name);
}
return {
test: test,
test2: test2,
}
}
var obj = Helper({name: 'abc', sex: 'male'});
obj.test();
obj.test2();
然后应该导出Helper和import Helper from 'Helper.js'
export function HelloChandu(_this) {
//How to access navigator props from here.
}
export function HelloTester(_this) {
HelloChandu(_this);
}
相关文章:
- 除修剪外的其他功能
- 是否可以访问其他功能中的克隆
- 解释$apply和$eval |我可以用其他功能替换它们吗 |AngularJS.
- 向 Google Maps API 添加其他功能
- 我是否可以在 Bootstrap 3 中为折叠手风琴指定一个相对的“数据目标”,同时保留“折叠其他”功能
- document.ready在同一页上禁用其他功能
- 获取将图像调整为其容器大小的脚本的名称+其他功能
- 阻止其他功能在所选功能之后运行
- Knockout寄存器插入了具有其他功能的元素
- 停止传播不工作,避免孩子点击触发其他功能
- 如何将变量从客户机传递到服务器,并将其持久化在服务器中用于其他功能
- 在其他功能中使用来自设备方向的值
- 显示服务器上的现有文件,限制文件数量和其他功能
- 解释";您可以具有改变其他功能的功能"
- 替换匿名功能,同时将所有其他功能保留在模块之外
- 如何访问导入模块的其他功能中的道具
- 当其他功能正在运行时,单击按钮触发
- 单击按钮时如何停止其他功能的运行
- 当其他功能完成时运行功能
- 如何在不影响页面其他功能的情况下向我的 HTML 页面添加链接