假设我创建了一个简单函数的基本模块,如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.props,但我无法在HelloChandu
函数中访问this.props。
问题:如何从helper.js模块中的任何函数访问this.props
?就像有10-20个函数一样,并且我不必作为参数传递。
谢谢
答案 0 :(得分:1)
我担心如果你想在你的一个函数中访问this.props,你需要明确地传递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 :(得分:0)
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'
答案 2 :(得分:0)
@Scheduled(fixedRateString = "${update.rate}")
public void update()
{
System.out.println(this.message);
}