繁体   English   中英

React Native函数作用域(从子函数调用父函数)

[英]React Native function scope (Call parent function from child function)

我正在努力使自己了解功能范围。 _internalFunction运作良好,但是我该如何调用_externalFunction

我试过self=thisthis._externalFunction内的this._externalFunction,还尝试了() => {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>);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM