React Native Map函数不能在同一类中使用函数

时间:2019-04-05 18:02:21

标签: javascript reactjs react-native

下面是代码:

export default SomeClass extends React.Component {
    constructor(props) {
        super(props);
    }

    _FunctionA = () => {
        // Do something
    }

    render() {
        const arr = ['1', '2'];

        const buttons = arr.map(function(v, i) {
            return(
                <TouchableOpacity onPress={this._FunctionA}></TouchableOpacity>
            );
        });

        return(
            <View>
                { buttons }
            </View>
        );
    }
}

我的问题是为什么我不能在map函数内的同一类中调用functionA,我知道this._FunctionA存在问题,它没有引用正确的函数,但是我找不到方法和内容是从map函数调用Function的方法。

1 个答案:

答案 0 :(得分:1)

在map函数中,this使用另一个值,this不再引用类,因此在渲染函数中,您必须在var中引用该类:

render() {
        const arr = ['1', '2'];
        let that = this;
        const buttons = arr.map(function(v, i) {
            return(
                <TouchableOpacity onPress={that._FunctionA}></TouchableOpacity>
            );
        });

        return(
            <View>
                { buttons }
            </View>
        );
    }