undefined 不是对象(评估 '_this2.onRadioPressed')



我正在使用我的组件构建单选按钮,按钮构建良好,但 onPress 不起作用。 单击单选按钮时,我在标题中出现错误。 根据错误,我怀疑"这个"不是我认为的那样。 任何帮助,不胜感激。 以下是相关代码:

let radio_props = [
        {label: 'forward', value: 0 },
        {label: 'back', value: 1 }
    ];
<RadioBtn
    radioGroupLabel={'Main Label'}
    radioLabels={radio_props}
    style={styles.radioElement}>
</RadioBtn>

然后在我的RadioBtn.js文件中...

onRadioPressed = (val) => { console.log('VAL:', val); this.setState({selectedValue:val}); };

renderRadios(obj, i) {
    console.log('OBJ:', obj);
  return (
      <View style={styles.firstRadioContainer}>
          <TouchableOpacity
              onPress={(value, index) => {
                  this.onRadioPressed(obj.value)
              }}
              underlayColor='#f1c40f'>
              <Text value={obj.value} style={styles.radio}>{obj.label}</Text>
          </TouchableOpacity>
      </View>
  )
};
render() {
    let renderedRadios = this.props.radioLabels.map(this.renderRadios);
    return (
        <View>
            <View style={styles.radioLabelContainer}>
                <Text style={styles.radioLabel}>{this.props.radioGroupLabel}</Text>
            </View>
            <View style={styles.radioGrp}>
                {renderedRadios}
            </View>
        </View>
    );
};

你是对的,this renderRadios方法不再指向RadioBtn类,因为你在数组的map方法中调用的方式。

尝试使用箭头函数表达式更改为以下内容:

let renderedRadios = this.props.radioLabels.map((o, i) => this.renderRadios(o, i));

相关内容

  • 没有找到相关文章

最新更新