React Native函数作用域(从子函数调用父函数)
React Native function scope (Call parent function from child function)
我正试图让我的头围绕函数的范围。_internalFunction
工作得很好,但我如何调用_externalFunction
呢?
我已经尝试了self=this
,然后this._externalFunction
内_renderRow,也尝试了() => {this._externalFunction}
,但它没有工作。
class sandbox extends Component {
//some code removed for clarity
_renderRow(item) {
const _internalFunction = () => {
Alert.alert('Internal');
};
return (<Text onPress={_internalFunction}>{item}</Text>);
}
_externalFunction() {
Alert.alert('External');
};
}
下面是React Native Playground中的代码:https://rnplay.org/apps/5CIGvA
提前感谢!:)
在ES6中,您需要手动将this
绑定到实例。这是来自React文档的一段话:
因此你需要在构造函数中绑定你的函数:在声明为ES6类的React组件中,方法遵循相同的规则与常规ES6类一样的语义。这意味着它们不需要自动将
this
绑定到实例。你必须明确地在构造函数中使用.bind(this)
constructor() {
super();
this._externalFunction = this._externalFunction.bind(this);
}
然后你可以在组件中使用this._externalFunction
:
_renderRow(item) {
return (<Text onPress={this._externalFunction}>{item}</Text>);
}
相关文章:
- 如何使jQuery插件函数可调用以供独立使用,而不在集合上操作
- Meteor Router数据函数被调用两次
- 拦截对构造函数的调用
- 为什么(如何)'这'从函数内部调用回调时发生更改
- 比较sessionStorage值时,Javascript函数无法调用
- 如何从构造函数中调用js原型方法
- 使用AJAX将变量发布到不同文件上的php函数并调用该函数
- 从构造函数es6调用静态方法
- 如何在函数中调用函数?(CoffeeScript)
- 我在画布中的鼠标按下函数在调用时不会重绘背景
- Javascript 从函数名称调用函数
- 使用函数按钮调用 ajaxform
- 调用子类函数时调用的超类函数
- 如何使用字符串作为类名并在函数中调用它
- 轮询 ajax 函数超出调用堆栈
- java-script 函数被调用两次
- 使用 Promise 在另一个函数中调用带有 Bluebird 承诺库的函数
- 更改函数名称调用中的单击事件
- 使用promise或setTimeout确定延迟函数的调用顺序
- 如何避免在函数中调用函数